/*
 * Tencent is pleased to support the open source community by making
 * Hippy available.
 *
 * Copyright (C) 2017-2025 THL A29 Limited, a Tencent company.
 * All rights reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

#include <unordered_map>

#include "driver/vm/native_source_code.h"
#include "footstone/macros.h"
#include "driver/vm/v8/native_source_code_v8.h"


namespace {
  const uint8_t k_bootstrap[] = { 40,102,117,110,99,116,105,111,110,32,40,103,101,116,73,110,116,101,114,110,97,108,66,105,110,100,105,110,103,41,32,123,10,32,32,103,108,111,98,97,108,46,72,105,112,112,121,32,61,32,103,108,111,98,97,108,46,72,105,112,112,121,32,124,124,32,123,125,59,10,32,32,99,111,110,115,116,32,98,105,110,100,105,110,103,79,98,106,32,61,32,123,125,59,10,32,32,99,111,110,115,116,32,105,110,116,101,114,110,97,108,66,105,110,100,105,110,103,32,61,32,102,117,110,99,116,105,111,110,32,105,110,116,101,114,110,97,108,66,105,110,100,105,110,103,40,109,111,100,117,108,101,41,32,123,10,32,32,32,32,105,102,32,40,116,121,112,101,111,102,32,98,105,110,100,105,110,103,79,98,106,91,109,111,100,117,108,101,93,32,33,61,61,32,39,111,98,106,101,99,116,39,41,32,123,10,32,32,32,32,32,32,98,105,110,100,105,110,103,79,98,106,91,109,111,100,117,108,101,93,32,61,32,103,101,116,73,110,116,101,114,110,97,108,66,105,110,100,105,110,103,40,109,111,100,117,108,101,41,59,10,32,32,32,32,125,10,32,32,32,32,114,101,116,117,114,110,32,98,105,110,100,105,110,103,79,98,106,91,109,111,100,117,108,101,93,59,10,32,32,125,59,10,32,32,99,111,110,115,116,32,67,111,110,116,101,120,116,105,102,121,83,99,114,105,112,116,32,61,32,105,110,116,101,114,110,97,108,66,105,110,100,105,110,103,40,39,67,111,110,116,101,120,116,105,102,121,77,111,100,117,108,101,39,41,59,10,32,32,99,108,97,115,115,32,78,97,116,105,118,101,77,111,100,117,108,101,32,123,10,32,32,32,32,99,111,110,115,116,114,117,99,116,111,114,40,102,105,108,101,110,97,109,101,41,32,123,10,32,32,32,32,32,32,116,104,105,115,46,102,105,108,101,110,97,109,101,32,61,32,102,105,108,101,110,97,109,101,59,10,32,32,32,32,32,32,116,104,105,115,46,101,120,112,111,114,116,115,32,61,32,123,125,59,10,32,32,32,32,125,10,32,32,32,32,115,116,97,116,105,99,32,114,101,113,117,105,114,101,40,102,105,108,101,80,97,116,104,41,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,102,105,108,101,80,97,116,104,65,114,114,32,61,32,102,105,108,101,80,97,116,104,46,115,112,108,105,116,40,39,47,39,41,59,10,32,32,32,32,32,32,99,111,110,115,116,32,102,105,108,101,110,97,109,101,32,61,32,102,105,108,101,80,97,116,104,65,114,114,91,102,105,108,101,80,97,116,104,65,114,114,46,108,101,110,103,116,104,32,45,32,49,93,59,10,32,32,32,32,32,32,99,111,110,115,116,32,99,97,99,104,101,100,32,61,32,78,97,116,105,118,101,77,111,100,117,108,101,46,99,97,99,104,101,91,102,105,108,101,110,97,109,101,93,59,10,32,32,32,32,32,32,105,102,32,40,99,97,99,104,101,100,41,32,123,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,99,97,99,104,101,100,46,101,120,112,111,114,116,115,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,99,111,110,115,116,32,110,97,116,105,118,101,77,111,100,117,108,101,32,61,32,110,101,119,32,78,97,116,105,118,101,77,111,100,117,108,101,40,102,105,108,101,110,97,109,101,41,59,10,32,32,32,32,32,32,110,97,116,105,118,101,77,111,100,117,108,101,46,99,97,99,104,101,40,41,59,10,32,32,32,32,32,32,110,97,116,105,118,101,77,111,100,117,108,101,46,99,111,109,112,105,108,101,40,41,59,10,32,32,32,32,32,32,114,101,116,117,114,110,32,110,97,116,105,118,101,77,111,100,117,108,101,46,101,120,112,111,114,116,115,59,10,32,32,32,32,125,10,32,32,32,32,99,111,109,112,105,108,101,40,41,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,102,110,32,61,32,67,111,110,116,101,120,116,105,102,121,83,99,114,105,112,116,46,82,117,110,73,110,84,104,105,115,67,111,110,116,101,120,116,40,116,104,105,115,46,102,105,108,101,110,97,109,101,41,59,10,32,32,32,32,32,32,102,110,40,116,104,105,115,46,101,120,112,111,114,116,115,44,32,78,97,116,105,118,101,77,111,100,117,108,101,46,114,101,113,117,105,114,101,44,32,105,110,116,101,114,110,97,108,66,105,110,100,105,110,103,41,59,10,32,32,32,32,125,10,32,32,32,32,99,97,99,104,101,40,41,32,123,10,32,32,32,32,32,32,78,97,116,105,118,101,77,111,100,117,108,101,46,99,97,99,104,101,91,116,104,105,115,46,102,105,108,101,110,97,109,101,93,32,61,32,116,104,105,115,59,10,32,32,32,32,125,10,32,32,125,10,32,32,78,97,116,105,118,101,77,111,100,117,108,101,46,99,97,99,104,101,32,61,32,123,125,59,10,32,32,78,97,116,105,118,101,77,111,100,117,108,101,46,114,101,113,117,105,114,101,40,39,104,105,112,112,121,46,106,115,39,41,59,10,125,41,59,0 };  // NOLINT
  const uint8_t k_hippy[] = { 40,102,117,110,99,116,105,111,110,40,101,120,112,111,114,116,115,44,32,114,101,113,117,105,114,101,44,32,105,110,116,101,114,110,97,108,66,105,110,100,105,110,103,41,32,123,114,101,113,117,105,114,101,40,39,46,46,47,46,46,47,103,108,111,98,97,108,47,79,116,104,101,114,115,46,106,115,39,41,59,10,114,101,113,117,105,114,101,40,39,46,46,47,46,46,47,103,108,111,98,97,108,47,68,121,110,97,109,105,99,76,111,97,100,46,106,115,39,41,59,10,114,101,113,117,105,114,101,40,39,46,46,47,46,46,47,103,108,111,98,97,108,47,80,108,97,116,102,111,114,109,46,106,115,39,41,59,10,114,101,113,117,105,114,101,40,39,46,46,47,46,46,47,103,108,111,98,97,108,47,85,73,77,97,110,97,103,101,114,77,111,100,117,108,101,46,106,115,39,41,59,10,114,101,113,117,105,114,101,40,39,46,46,47,46,46,47,98,114,105,100,103,101,47,97,110,100,114,111,105,100,47,106,115,50,110,97,116,105,118,101,46,106,115,39,41,59,10,114,101,113,117,105,114,101,40,39,46,46,47,46,46,47,103,108,111,98,97,108,47,84,105,109,101,114,77,111,100,117,108,101,46,106,115,39,41,59,10,114,101,113,117,105,114,101,40,39,46,46,47,46,46,47,103,108,111,98,97,108,47,67,111,110,115,111,108,101,77,111,100,117,108,101,46,106,115,39,41,59,10,114,101,113,117,105,114,101,40,39,46,46,47,46,46,47,103,108,111,98,97,108,47,78,101,116,119,111,114,107,46,106,115,39,41,59,10,114,101,113,117,105,114,101,40,39,46,46,47,46,46,47,103,108,111,98,97,108,47,83,116,111,114,97,103,101,46,106,115,39,41,59,10,114,101,113,117,105,114,101,40,39,46,46,47,46,46,47,103,108,111,98,97,108,47,68,105,109,101,110,115,105,111,110,115,46,106,115,39,41,59,10,114,101,113,117,105,114,101,40,39,46,46,47,46,46,47,103,108,111,98,97,108,47,85,116,105,108,115,77,111,100,117,108,101,46,106,115,39,41,59,10,114,101,113,117,105,114,101,40,39,46,46,47,46,46,47,103,108,111,98,97,108,47,97,110,100,114,111,105,100,47,103,108,111,98,97,108,46,106,115,39,41,59,10,114,101,113,117,105,114,101,40,39,46,46,47,46,46,47,98,114,105,100,103,101,47,97,110,100,114,111,105,100,47,110,97,116,105,118,101,50,106,115,46,106,115,39,41,59,10,114,101,113,117,105,114,101,40,39,46,46,47,46,46,47,103,108,111,98,97,108,47,69,118,101,110,116,46,106,115,39,41,59,10,114,101,113,117,105,114,101,40,39,46,46,47,46,46,47,103,108,111,98,97,108,47,65,110,105,109,97,116,105,111,110,70,114,97,109,101,77,111,100,117,108,101,46,106,115,39,41,59,10,114,101,113,117,105,114,101,40,39,46,46,47,46,46,47,103,108,111,98,97,108,47,97,110,100,114,111,105,100,47,84,117,114,98,111,46,106,115,39,41,59,10,103,108,111,98,97,108,46,108,111,99,97,108,83,116,111,114,97,103,101,32,61,32,72,105,112,112,121,46,97,115,121,110,99,83,116,111,114,97,103,101,59,10,103,108,111,98,97,108,46,116,117,114,98,111,80,114,111,109,105,115,101,32,61,32,72,105,112,112,121,46,116,117,114,98,111,80,114,111,109,105,115,101,59,125,41,59,0 };  // NOLINT
  const uint8_t k_ExceptionHandle[] = { 40,102,117,110,99,116,105,111,110,32,101,120,99,101,112,116,105,111,110,72,97,110,100,108,101,114,40,101,118,101,110,116,78,97,109,101,44,32,101,120,99,101,112,116,105,111,110,41,32,123,10,32,32,105,102,32,40,103,108,111,98,97,108,46,72,105,112,112,121,41,32,123,10,32,32,32,32,103,108,111,98,97,108,46,72,105,112,112,121,46,101,109,105,116,40,101,118,101,110,116,78,97,109,101,44,32,101,120,99,101,112,116,105,111,110,41,59,10,32,32,125,32,101,108,115,101,32,123,10,32,32,32,32,99,111,110,115,111,108,101,46,101,114,114,111,114,40,101,118,101,110,116,78,97,109,101,44,32,101,120,99,101,112,116,105,111,110,41,59,10,32,32,125,10,125,41,59,0 };  // NOLINT
  const uint8_t k_Others[] = { 40,102,117,110,99,116,105,111,110,40,101,120,112,111,114,116,115,44,32,114,101,113,117,105,114,101,44,32,105,110,116,101,114,110,97,108,66,105,110,100,105,110,103,41,32,123,103,108,111,98,97,108,46,95,95,73,83,72,73,80,80,89,95,95,32,61,32,116,114,117,101,59,10,103,108,111,98,97,108,46,95,95,71,76,79,66,65,76,95,95,32,61,32,123,10,32,32,103,108,111,98,97,108,69,118,101,110,116,72,97,110,100,108,101,58,32,123,125,10,125,59,10,99,108,97,115,115,32,69,114,114,111,114,69,118,101,110,116,32,123,10,32,32,99,111,110,115,116,114,117,99,116,111,114,40,109,101,115,115,97,103,101,44,32,102,105,108,101,110,97,109,101,44,32,108,105,110,101,110,111,44,32,99,111,108,110,111,44,32,101,114,114,111,114,41,32,123,10,32,32,32,32,116,104,105,115,46,109,101,115,115,97,103,101,32,61,32,109,101,115,115,97,103,101,59,10,32,32,32,32,116,104,105,115,46,102,105,108,101,110,97,109,101,32,61,32,102,105,108,101,110,97,109,101,59,10,32,32,32,32,116,104,105,115,46,108,105,110,101,110,111,32,61,32,108,105,110,101,110,111,59,10,32,32,32,32,116,104,105,115,46,99,111,108,110,111,32,61,32,99,111,108,110,111,59,10,32,32,32,32,116,104,105,115,46,101,114,114,111,114,32,61,32,101,114,114,111,114,59,10,32,32,125,10,125,10,102,117,110,99,116,105,111,110,32,104,105,112,112,121,82,101,103,105,115,116,101,114,40,97,112,112,78,97,109,101,44,32,101,110,116,114,121,70,117,110,99,41,32,123,10,32,32,95,95,71,76,79,66,65,76,95,95,46,97,112,112,82,101,103,105,115,116,101,114,91,97,112,112,78,97,109,101,93,32,61,32,123,10,32,32,32,32,114,117,110,58,32,101,110,116,114,121,70,117,110,99,10,32,32,125,59,10,125,10,102,117,110,99,116,105,111,110,32,111,110,40,101,118,101,110,116,78,97,109,101,44,32,108,105,115,116,101,110,101,114,41,32,123,10,32,32,105,102,32,40,116,121,112,101,111,102,32,101,118,101,110,116,78,97,109,101,32,33,61,61,32,39,115,116,114,105,110,103,39,32,124,124,32,116,121,112,101,111,102,32,108,105,115,116,101,110,101,114,32,33,61,61,32,39,102,117,110,99,116,105,111,110,39,41,32,123,10,32,32,32,32,116,104,114,111,119,32,110,101,119,32,84,121,112,101,69,114,114,111,114,40,39,72,105,112,112,121,46,111,110,40,41,32,111,110,108,121,32,97,99,99,101,112,116,32,97,32,115,116,114,105,110,103,32,97,115,32,101,118,101,110,116,32,110,97,109,101,32,97,110,100,32,97,32,102,117,110,99,116,105,111,110,32,97,115,32,108,105,115,116,101,110,101,114,39,41,59,10,32,32,125,10,32,32,108,101,116,32,101,118,101,110,116,76,105,115,116,101,110,101,114,115,32,61,32,95,95,71,76,79,66,65,76,95,95,46,103,108,111,98,97,108,69,118,101,110,116,72,97,110,100,108,101,91,101,118,101,110,116,78,97,109,101,93,59,10,32,32,105,102,32,40,33,40,101,118,101,110,116,76,105,115,116,101,110,101,114,115,32,105,110,115,116,97,110,99,101,111,102,32,83,101,116,41,41,32,123,10,32,32,32,32,95,95,71,76,79,66,65,76,95,95,46,103,108,111,98,97,108,69,118,101,110,116,72,97,110,100,108,101,91,101,118,101,110,116,78,97,109,101,93,32,61,32,110,101,119,32,83,101,116,40,41,59,10,32,32,32,32,101,118,101,110,116,76,105,115,116,101,110,101,114,115,32,61,32,95,95,71,76,79,66,65,76,95,95,46,103,108,111,98,97,108,69,118,101,110,116,72,97,110,100,108,101,91,101,118,101,110,116,78,97,109,101,93,59,10,32,32,125,10,32,32,101,118,101,110,116,76,105,115,116,101,110,101,114,115,46,97,100,100,40,108,105,115,116,101,110,101,114,41,59,10,32,32,114,101,116,117,114,110,32,101,118,101,110,116,76,105,115,116,101,110,101,114,115,59,10,125,10,102,117,110,99,116,105,111,110,32,111,102,102,40,101,118,101,110,116,78,97,109,101,44,32,108,105,115,116,101,110,101,114,41,32,123,10,32,32,105,102,32,40,116,121,112,101,111,102,32,101,118,101,110,116,78,97,109,101,32,33,61,61,32,39,115,116,114,105,110,103,39,41,32,123,10,32,32,32,32,116,104,114,111,119,32,110,101,119,32,84,121,112,101,69,114,114,111,114,40,39,72,105,112,112,121,46,111,102,102,40,41,32,111,110,108,121,32,97,99,99,101,112,116,32,97,32,115,116,114,105,110,103,32,97,115,32,101,118,101,110,116,32,110,97,109,101,39,41,59,10,32,32,125,10,32,32,99,111,110,115,116,32,101,118,101,110,116,76,105,115,116,101,110,101,114,115,32,61,32,95,95,71,76,79,66,65,76,95,95,46,103,108,111,98,97,108,69,118,101,110,116,72,97,110,100,108,101,91,101,118,101,110,116,78,97,109,101,93,59,10,32,32,105,102,32,40,33,40,101,118,101,110,116,76,105,115,116,101,110,101,114,115,32,105,110,115,116,97,110,99,101,111,102,32,83,101,116,41,41,32,123,10,32,32,32,32,114,101,116,117,114,110,32,110,117,108,108,59,10,32,32,125,10,32,32,105,102,32,40,108,105,115,116,101,110,101,114,41,32,123,10,32,32,32,32,101,118,101,110,116,76,105,115,116,101,110,101,114,115,46,100,101,108,101,116,101,40,108,105,115,116,101,110,101,114,41,59,10,32,32,32,32,114,101,116,117,114,110,32,101,118,101,110,116,76,105,115,116,101,110,101,114,115,59,10,32,32,125,10,32,32,101,118,101,110,116,76,105,115,116,101,110,101,114,115,46,99,108,101,97,114,40,41,59,10,32,32,114,101,116,117,114,110,32,110,117,108,108,59,10,125,10,102,117,110,99,116,105,111,110,32,101,109,105,116,40,101,118,101,110,116,78,97,109,101,44,32,46,46,46,97,114,103,115,41,32,123,10,32,32,105,102,32,40,116,121,112,101,111,102,32,101,118,101,110,116,78,97,109,101,32,33,61,61,32,39,115,116,114,105,110,103,39,41,32,123,10,32,32,32,32,116,104,114,111,119,32,110,101,119,32,84,121,112,101,69,114,114,111,114,40,39,72,105,112,112,121,46,101,109,105,116,40,41,32,111,110,108,121,32,97,99,99,101,112,116,32,97,32,115,116,114,105,110,103,32,97,115,32,101,118,101,110,116,32,110,97,109,101,39,41,59,10,32,32,125,10,32,32,108,101,116,32,105,115,69,114,114,32,61,32,101,118,101,110,116,78,97,109,101,32,61,61,61,32,39,101,114,114,111,114,39,59,10,32,32,108,101,116,32,101,114,114,79,98,106,32,61,32,110,101,119,32,69,114,114,111,114,40,41,59,10,32,32,105,102,32,40,105,115,69,114,114,41,32,123,10,32,32,32,32,108,101,116,32,97,114,114,32,61,32,97,114,103,115,91,48,93,59,10,32,32,32,32,105,102,32,40,33,40,97,114,114,32,105,110,115,116,97,110,99,101,111,102,32,65,114,114,97,121,41,41,32,123,10,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,84,121,112,101,69,114,114,111,114,40,39,72,105,112,112,121,46,101,109,105,116,40,41,32,101,114,114,111,114,32,101,118,101,110,116,44,32,97,114,103,115,48,32,109,117,115,116,32,98,101,32,97,114,114,97,121,39,41,59,10,32,32,32,32,125,10,32,32,32,32,105,102,32,40,97,114,114,46,108,101,110,103,116,104,32,33,61,61,32,53,41,32,123,10,32,32,32,32,32,32,116,104,114,111,119,32,110,101,119,32,84,121,112,101,69,114,114,111,114,40,39,72,105,112,112,121,46,101,109,105,116,40,41,32,101,114,114,111,114,32,101,118,101,110,116,44,32,97,114,103,115,48,32,108,101,110,103,116,104,32,109,117,115,116,32,98,101,32,53,39,41,59,10,32,32,32,32,125,10,32,32,32,32,101,114,114,79,98,106,46,109,101,115,115,97,103,101,32,61,32,74,83,79,78,46,115,116,114,105,110,103,105,102,121,40,97,114,114,91,52,93,41,59,10,32,32,32,32,105,102,32,40,72,105,112,112,121,46,111,110,101,114,114,111,114,41,32,123,10,32,32,32,32,32,32,72,105,112,112,121,46,111,110,101,114,114,111,114,40,97,114,114,91,48,93,44,32,97,114,114,91,49,93,44,32,97,114,114,91,50,93,44,32,97,114,114,91,51,93,44,32,101,114,114,79,98,106,41,59,10,32,32,32,32,125,10,32,32,125,10,32,32,99,111,110,115,116,32,101,118,101,110,116,76,105,115,116,101,110,101,114,115,32,61,32,95,95,71,76,79,66,65,76,95,95,46,103,108,111,98,97,108,69,118,101,110,116,72,97,110,100,108,101,91,101,118,101,110,116,78,97,109,101,93,59,10,32,32,105,102,32,40,33,101,118,101,110,116,76,105,115,116,101,110,101,114,115,41,32,123,10,32,32,32,32,105,102,32,40,97,114,103,115,91,48,93,41,32,123,10,32,32,32,32,32,32,99,111,110,115,111,108,101,46,101,114,114,111,114,40,97,114,103,115,91,48,93,46,116,111,83,116,114,105,110,103,40,41,41,59,10,32,32,32,32,125,10,32,32,32,32,114,101,116,117,114,110,59,10,32,32,125,10,32,32,116,114,121,32,123,10,32,32,32,32,105,102,32,40,105,115,69,114,114,41,32,123,10,32,32,32,32,32,32,108,101,116,32,97,114,114,32,61,32,97,114,103,115,91,48,93,59,10,32,32,32,32,32,32,108,101,116,32,101,118,101,110,116,32,61,32,110,101,119,32,69,114,114,111,114,69,118,101,110,116,40,97,114,114,91,48,93,44,32,97,114,114,91,49,93,44,32,97,114,114,91,50,93,44,32,97,114,114,91,51,93,44,32,101,114,114,79,98,106,41,59,10,32,32,32,32,32,32,101,118,101,110,116,76,105,115,116,101,110,101,114,115,46,102,111,114,69,97,99,104,40,108,105,115,116,101,110,101,114,32,61,62,32,108,105,115,116,101,110,101,114,40,101,118,101,110,116,41,41,59,10,32,32,32,32,125,32,101,108,115,101,32,123,10,32,32,32,32,32,32,101,118,101,110,116,76,105,115,116,101,110,101,114,115,46,102,111,114,69,97,99,104,40,108,105,115,116,101,110,101,114,32,61,62,32,108,105,115,116,101,110,101,114,40,46,46,46,97,114,103,115,41,41,59,10,32,32,32,32,125,10,32,32,125,32,99,97,116,99,104,32,40,101,114,114,41,32,123,10,32,32,32,32,99,111,110,115,111,108,101,46,101,114,114,111,114,40,101,114,114,41,59,10,32,32,125,10,125,10,72,105,112,112,121,46,100,101,118,105,99,101,32,61,32,123,125,59,10,72,105,112,112,121,46,98,114,105,100,103,101,32,61,32,123,125,59,10,72,105,112,112,121,46,114,101,103,105,115,116,101,114,32,61,32,123,10,32,32,114,101,103,105,115,116,58,32,104,105,112,112,121,82,101,103,105,115,116,101,114,10,125,59,10,72,105,112,112,121,46,111,110,32,61,32,111,110,59,10,72,105,112,112,121,46,111,102,102,32,61,32,111,102,102,59,10,72,105,112,112,121,46,101,109,105,116,32,61,32,101,109,105,116,59,10,72,105,112,112,121,46,97,100,100,69,118,101,110,116,76,105,115,116,101,110,101,114,32,61,32,111,110,59,10,72,105,112,112,121,46,114,101,109,111,118,101,69,118,101,110,116,76,105,115,116,101,110,101,114,32,61,32,111,102,102,59,10,72,105,112,112,121,46,111,110,101,114,114,111,114,32,61,32,117,110,100,101,102,105,110,101,100,59,125,41,59,0 };  // NOLINT
  const uint8_t k_DynamicLoad[] = { 40,102,117,110,99,116,105,111,110,40,101,120,112,111,114,116,115,44,32,114,101,113,117,105,114,101,44,32,105,110,116,101,114,110,97,108,66,105,110,100,105,110,103,41,32,123,99,111,110,115,116,32,67,111,110,116,101,120,116,105,102,121,77,111,100,117,108,101,32,61,32,105,110,116,101,114,110,97,108,66,105,110,100,105,110,103,40,39,67,111,110,116,101,120,116,105,102,121,77,111,100,117,108,101,39,41,59,10,103,108,111,98,97,108,46,100,121,110,97,109,105,99,76,111,97,100,32,61,32,40,112,97,116,104,44,32,101,110,99,111,100,101,44,32,99,98,41,32,61,62,32,123,10,32,32,108,101,116,32,114,101,113,117,101,115,116,80,97,116,104,32,61,32,112,97,116,104,32,124,124,32,39,39,59,10,32,32,99,111,110,115,116,32,105,115,83,99,104,101,109,97,32,61,32,47,94,40,46,43,58,92,47,92,47,41,124,94,40,92,47,92,47,41,47,46,116,101,115,116,40,112,97,116,104,41,59,10,32,32,105,102,32,40,33,105,115,83,99,104,101,109,97,41,32,123,10,32,32,32,32,114,101,113,117,101,115,116,80,97,116,104,32,61,32,103,108,111,98,97,108,46,95,95,72,73,80,80,89,67,85,82,68,73,82,95,95,32,43,32,112,97,116,104,59,10,32,32,125,10,32,32,67,111,110,116,101,120,116,105,102,121,77,111,100,117,108,101,46,76,111,97,100,85,110,116,114,117,115,116,101,100,67,111,110,116,101,110,116,40,114,101,113,117,101,115,116,80,97,116,104,44,32,101,110,99,111,100,101,44,32,99,98,41,59,10,125,59,125,41,59,0 };  // NOLINT
  const uint8_t k_Platform[] = { 40,102,117,110,99,116,105,111,110,40,101,120,112,111,114,116,115,44,32,114,101,113,117,105,114,101,44,32,105,110,116,101,114,110,97,108,66,105,110,100,105,110,103,41,32,123,72,105,112,112,121,46,100,101,118,105,99,101,46,112,108,97,116,102,111,114,109,32,61,32,123,125,59,10,105,102,32,40,116,121,112,101,111,102,32,95,95,72,73,80,80,89,78,65,84,73,86,69,71,76,79,66,65,76,95,95,32,33,61,61,32,39,117,110,100,101,102,105,110,101,100,39,41,32,123,10,32,32,99,111,110,115,116,32,76,111,99,97,108,105,122,97,116,105,111,110,32,61,32,123,10,32,32,32,32,99,111,117,110,116,114,121,58,32,39,39,44,10,32,32,32,32,108,97,110,103,117,97,103,101,58,32,39,39,44,10,32,32,32,32,100,105,114,101,99,116,105,111,110,58,32,48,10,32,32,125,59,10,32,32,105,102,32,40,95,95,72,73,80,80,89,78,65,84,73,86,69,71,76,79,66,65,76,95,95,46,79,83,32,61,61,61,32,39,105,111,115,39,41,32,123,10,32,32,32,32,72,105,112,112,121,46,100,101,118,105,99,101,46,112,108,97,116,102,111,114,109,46,79,83,32,61,32,95,95,72,73,80,80,89,78,65,84,73,86,69,71,76,79,66,65,76,95,95,46,79,83,59,10,32,32,32,32,72,105,112,112,121,46,100,101,118,105,99,101,46,112,108,97,116,102,111,114,109,46,68,101,118,105,99,101,32,61,32,95,95,72,73,80,80,89,78,65,84,73,86,69,71,76,79,66,65,76,95,95,46,68,101,118,105,99,101,59,10,32,32,32,32,72,105,112,112,121,46,100,101,118,105,99,101,46,112,108,97,116,102,111,114,109,46,79,83,86,101,114,115,105,111,110,32,61,32,95,95,72,73,80,80,89,78,65,84,73,86,69,71,76,79,66,65,76,95,95,46,79,83,86,101,114,115,105,111,110,59,10,32,32,32,32,72,105,112,112,121,46,100,101,118,105,99,101,46,112,108,97,116,102,111,114,109,46,83,68,75,86,101,114,115,105,111,110,32,61,32,95,95,72,73,80,80,89,78,65,84,73,86,69,71,76,79,66,65,76,95,95,46,83,68,75,86,101,114,115,105,111,110,59,10,32,32,32,32,72,105,112,112,121,46,100,101,118,105,99,101,46,112,108,97,116,102,111,114,109,46,76,111,99,97,108,105,122,97,116,105,111,110,32,61,32,95,95,72,73,80,80,89,78,65,84,73,86,69,71,76,79,66,65,76,95,95,46,76,111,99,97,108,105,122,97,116,105,111,110,32,124,124,32,76,111,99,97,108,105,122,97,116,105,111,110,59,10,32,32,125,32,101,108,115,101,32,123,10,32,32,32,32,72,105,112,112,121,46,100,101,118,105,99,101,46,112,108,97,116,102,111,114,109,46,79,83,32,61,32,95,95,72,73,80,80,89,78,65,84,73,86,69,71,76,79,66,65,76,95,95,46,80,108,97,116,102,111,114,109,46,79,83,59,10,32,32,32,32,72,105,112,112,121,46,100,101,118,105,99,101,46,112,108,97,116,102,111,114,109,46,65,80,73,76,101,118,101,108,32,61,32,95,95,72,73,80,80,89,78,65,84,73,86,69,71,76,79,66,65,76,95,95,46,80,108,97,116,102,111,114,109,46,65,80,73,76,101,118,101,108,59,10,32,32,32,32,72,105,112,112,121,46,100,101,118,105,99,101,46,112,108,97,116,102,111,114,109,46,83,68,75,86,101,114,115,105,111,110,32,61,32,95,95,72,73,80,80,89,78,65,84,73,86,69,71,76,79,66,65,76,95,95,46,80,108,97,116,102,111,114,109,46,83,68,75,86,101,114,115,105,111,110,59,10,32,32,32,32,72,105,112,112,121,46,100,101,118,105,99,101,46,112,108,97,116,102,111,114,109,46,76,111,99,97,108,105,122,97,116,105,111,110,32,61,32,95,95,72,73,80,80,89,78,65,84,73,86,69,71,76,79,66,65,76,95,95,46,80,108,97,116,102,111,114,109,46,76,111,99,97,108,105,122,97,116,105,111,110,32,124,124,32,76,111,99,97,108,105,122,97,116,105,111,110,59,10,32,32,125,10,125,125,41,59,0 };  // NOLINT
  const uint8_t k_UIManagerModule[] = { 40,102,117,110,99,116,105,111,110,40,101,120,112,111,114,116,115,44,32,114,101,113,117,105,114,101,44,32,105,110,116,101,114,110,97,108,66,105,110,100,105,110,103,41,32,123,99,111,110,115,116,32,85,73,77,97,110,97,103,101,114,77,111,100,117,108,101,32,61,32,105,110,116,101,114,110,97,108,66,105,110,100,105,110,103,40,39,85,73,77,97,110,97,103,101,114,77,111,100,117,108,101,39,41,59,10,99,111,110,115,116,32,76,97,121,111,117,116,77,111,100,117,108,101,32,61,32,105,110,116,101,114,110,97,108,66,105,110,100,105,110,103,40,39,76,97,121,111,117,116,77,111,100,117,108,101,39,41,59,10,72,105,112,112,121,46,100,111,99,117,109,101,110,116,32,61,32,123,10,32,32,99,114,101,97,116,101,78,111,100,101,40,41,32,123,125,44,10,32,32,117,112,100,97,116,101,78,111,100,101,40,41,32,123,125,44,10,32,32,100,101,108,101,116,101,78,111,100,101,40,41,32,123,125,44,10,32,32,102,108,117,115,104,66,97,116,99,104,40,41,32,123,125,44,10,32,32,101,110,100,66,97,116,99,104,40,41,32,123,125,44,10,32,32,99,97,108,108,85,73,70,117,110,99,116,105,111,110,40,105,100,44,32,110,97,109,101,44,32,112,97,114,97,109,44,32,99,98,41,32,123,10,32,32,32,32,85,73,77,97,110,97,103,101,114,77,111,100,117,108,101,46,67,97,108,108,85,73,70,117,110,99,116,105,111,110,40,105,100,44,32,110,97,109,101,44,32,112,97,114,97,109,44,32,99,98,41,59,10,32,32,125,44,10,32,32,82,101,115,101,116,76,97,121,111,117,116,67,97,99,104,101,40,41,32,123,10,32,32,32,32,76,97,121,111,117,116,77,111,100,117,108,101,46,82,101,115,101,116,76,97,121,111,117,116,67,97,99,104,101,40,41,59,10,32,32,125,44,10,32,32,115,101,110,100,82,101,110,100,101,114,69,114,114,111,114,40,101,114,114,111,114,41,32,123,10,32,32,32,32,105,102,32,40,101,114,114,111,114,41,32,123,10,32,32,32,32,32,32,116,104,114,111,119,32,101,114,114,111,114,59,10,32,32,32,32,125,10,32,32,125,10,125,59,125,41,59,0 };  // NOLINT
  const uint8_t k_js2native[] = { 40,102,117,110,99,116,105,111,110,40,101,120,112,111,114,116,115,44,32,114,101,113,117,105,114,101,44,32,105,110,116,101,114,110,97,108,66,105,110,100,105,110,103,41,32,123,72,105,112,112,121,46,98,114,105,100,103,101,46,99,97,108,108,78,97,116,105,118,101,32,61,32,40,46,46,46,99,97,108,108,65,114,103,117,109,101,110,116,115,41,32,61,62,32,123,10,32,32,105,102,32,40,116,121,112,101,111,102,32,103,108,111,98,97,108,46,104,105,112,112,121,67,97,108,108,78,97,116,105,118,101,115,32,61,61,61,32,39,117,110,100,101,102,105,110,101,100,39,41,32,123,10,32,32,32,32,116,104,114,111,119,32,110,101,119,32,82,101,102,101,114,101,110,99,101,69,114,114,111,114,40,39,104,105,112,112,121,67,97,108,108,78,97,116,105,118,101,115,32,110,111,116,32,100,101,102,105,110,101,100,39,41,59,10,32,32,125,10,32,32,105,102,32,40,99,97,108,108,65,114,103,117,109,101,110,116,115,46,108,101,110,103,116,104,32,60,32,50,41,32,123,10,32,32,32,32,116,104,114,111,119,32,110,101,119,32,84,121,112,101,69,114,114,111,114,40,39,99,97,108,108,78,97,116,105,118,101,32,97,114,103,117,109,101,110,116,115,32,108,101,110,103,116,104,32,109,117,115,116,32,98,101,32,108,97,114,103,101,114,32,116,104,97,110,32,50,39,41,59,10,32,32,125,10,32,32,99,111,110,115,116,32,91,110,97,116,105,118,101,77,111,100,117,108,101,78,97,109,101,44,32,110,97,116,105,118,101,77,101,116,104,111,100,78,97,109,101,93,32,61,32,99,97,108,108,65,114,103,117,109,101,110,116,115,59,10,32,32,105,102,32,40,110,97,116,105,118,101,77,111,100,117,108,101,78,97,109,101,32,61,61,61,32,39,85,73,77,97,110,97,103,101,114,77,111,100,117,108,101,39,32,38,38,32,40,110,97,116,105,118,101,77,101,116,104,111,100,78,97,109,101,32,61,61,61,32,39,109,101,97,115,117,114,101,39,32,124,124,32,110,97,116,105,118,101,77,101,116,104,111,100,78,97,109,101,32,61,61,61,32,39,109,101,97,115,117,114,101,73,110,87,105,110,100,111,119,39,32,124,124,32,110,97,116,105,118,101,77,101,116,104,111,100,78,97,109,101,32,61,61,61,32,39,109,101,97,115,117,114,101,73,110,65,112,112,87,105,110,100,111,119,39,41,41,32,123,10,32,32,32,32,99,111,110,115,116,32,110,111,100,101,73,100,32,61,32,99,97,108,108,65,114,103,117,109,101,110,116,115,91,50,93,59,10,32,32,32,32,99,111,110,115,116,32,99,97,108,108,98,97,99,107,70,117,110,99,32,61,32,99,97,108,108,65,114,103,117,109,101,110,116,115,91,51,93,59,10,32,32,32,32,114,101,116,117,114,110,32,103,108,111,98,97,108,46,72,105,112,112,121,46,100,111,99,117,109,101,110,116,46,99,97,108,108,85,73,70,117,110,99,116,105,111,110,40,110,111,100,101,73,100,44,32,110,97,116,105,118,101,77,101,116,104,111,100,78,97,109,101,44,32,91,93,44,32,99,97,108,108,98,97,99,107,70,117,110,99,41,59,10,32,32,125,10,32,32,99,111,110,115,116,32,99,117,114,114,101,110,116,67,97,108,108,73,100,32,61,32,95,95,71,76,79,66,65,76,95,95,46,109,111,100,117,108,101,67,97,108,108,73,100,59,10,32,32,95,95,71,76,79,66,65,76,95,95,46,109,111,100,117,108,101,67,97,108,108,73,100,32,43,61,32,49,59,10,32,32,99,111,110,115,116,32,112,97,114,97,109,76,105,115,116,32,61,32,91,93,59,10,32,32,108,101,116,32,104,97,115,67,97,108,108,98,97,99,107,32,61,32,102,97,108,115,101,59,10,32,32,108,101,116,32,109,111,100,117,108,101,67,97,108,108,98,97,99,107,73,100,32,61,32,45,49,59,10,32,32,102,111,114,32,40,108,101,116,32,105,32,61,32,50,59,32,105,32,60,32,99,97,108,108,65,114,103,117,109,101,110,116,115,46,108,101,110,103,116,104,59,32,105,32,43,61,32,49,41,32,123,10,32,32,32,32,99,111,110,115,116,32,97,114,103,115,32,61,32,99,97,108,108,65,114,103,117,109,101,110,116,115,91,105,93,59,10,32,32,32,32,105,102,32,40,116,121,112,101,111,102,32,97,114,103,115,32,61,61,61,32,39,102,117,110,99,116,105,111,110,39,32,38,38,32,33,104,97,115,67,97,108,108,98,97,99,107,41,32,123,10,32,32,32,32,32,32,104,97,115,67,97,108,108,98,97,99,107,32,61,32,116,114,117,101,59,10,32,32,32,32,32,32,95,95,71,76,79,66,65,76,95,95,46,109,111,100,117,108,101,67,97,108,108,76,105,115,116,91,99,117,114,114,101,110,116,67,97,108,108,73,100,93,32,61,32,123,10,32,32,32,32,32,32,32,32,99,98,58,32,97,114,103,115,44,10,32,32,32,32,32,32,32,32,116,121,112,101,58,32,48,10,32,32,32,32,32,32,125,59,10,32,32,32,32,125,32,101,108,115,101,32,123,10,32,32,32,32,32,32,112,97,114,97,109,76,105,115,116,46,112,117,115,104,40,97,114,103,115,41,59,10,32,32,32,32,125,10,32,32,125,10,32,32,105,102,32,40,104,97,115,67,97,108,108,98,97,99,107,41,32,123,10,32,32,32,32,109,111,100,117,108,101,67,97,108,108,98,97,99,107,73,100,32,61,32,99,117,114,114,101,110,116,67,97,108,108,73,100,59,10,32,32,125,10,32,32,103,108,111,98,97,108,46,104,105,112,112,121,67,97,108,108,78,97,116,105,118,101,115,40,110,97,116,105,118,101,77,111,100,117,108,101,78,97,109,101,44,32,110,97,116,105,118,101,77,101,116,104,111,100,78,97,109,101,44,32,109,111,100,117,108,101,67,97,108,108,98,97,99,107,73,100,46,116,111,83,116,114,105,110,103,40,41,44,32,112,97,114,97,109,76,105,115,116,41,59,10,125,59,10,72,105,112,112,121,46,98,114,105,100,103,101,46,99,97,108,108,78,97,116,105,118,101,87,105,116,104,80,114,111,109,105,115,101,32,61,32,40,46,46,46,99,97,108,108,65,114,103,117,109,101,110,116,115,41,32,61,62,32,123,10,32,32,105,102,32,40,116,121,112,101,111,102,32,103,108,111,98,97,108,46,104,105,112,112,121,67,97,108,108,78,97,116,105,118,101,115,32,61,61,61,32,39,117,110,100,101,102,105,110,101,100,39,41,32,123,10,32,32,32,32,114,101,116,117,114,110,32,80,114,111,109,105,115,101,46,114,101,106,101,99,116,40,110,101,119,32,82,101,102,101,114,101,110,99,101,69,114,114,111,114,40,39,104,105,112,112,121,67,97,108,108,78,97,116,105,118,101,115,32,110,111,116,32,100,101,102,105,110,101,100,39,41,41,59,10,32,32,125,10,32,32,105,102,32,40,99,97,108,108,65,114,103,117,109,101,110,116,115,46,108,101,110,103,116,104,32,60,32,50,41,32,123,10,32,32,32,32,114,101,116,117,114,110,32,80,114,111,109,105,115,101,46,114,101,106,101,99,116,40,110,101,119,32,84,121,112,101,69,114,114,111,114,40,39,99,97,108,108,78,97,116,105,118,101,87,105,116,104,80,114,111,109,105,115,101,32,97,114,103,117,109,101,110,116,115,32,108,101,110,103,116,104,32,109,117,115,116,32,98,101,32,108,97,114,103,101,114,32,116,104,97,110,32,50,39,41,41,59,10,32,32,125,10,32,32,114,101,116,117,114,110,32,110,101,119,32,80,114,111,109,105,115,101,40,40,114,101,115,111,108,118,101,44,32,114,101,106,101,99,116,41,32,61,62,32,123,10,32,32,32,32,99,111,110,115,116,32,91,110,97,116,105,118,101,77,111,100,117,108,101,78,97,109,101,44,32,110,97,116,105,118,101,77,101,116,104,111,100,78,97,109,101,93,32,61,32,99,97,108,108,65,114,103,117,109,101,110,116,115,59,10,32,32,32,32,99,111,110,115,116,32,99,117,114,114,101,110,116,67,97,108,108,73,100,32,61,32,95,95,71,76,79,66,65,76,95,95,46,109,111,100,117,108,101,67,97,108,108,73,100,59,10,32,32,32,32,95,95,71,76,79,66,65,76,95,95,46,109,111,100,117,108,101,67,97,108,108,73,100,32,43,61,32,49,59,10,32,32,32,32,99,111,110,115,116,32,112,97,114,97,109,76,105,115,116,32,61,32,91,93,59,10,32,32,32,32,108,101,116,32,104,97,115,67,97,108,108,98,97,99,107,32,61,32,102,97,108,115,101,59,10,32,32,32,32,102,111,114,32,40,108,101,116,32,105,32,61,32,50,59,32,105,32,60,32,99,97,108,108,65,114,103,117,109,101,110,116,115,46,108,101,110,103,116,104,59,32,105,32,43,61,32,49,41,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,97,114,103,115,32,61,32,99,97,108,108,65,114,103,117,109,101,110,116,115,91,105,93,59,10,32,32,32,32,32,32,105,102,32,40,116,121,112,101,111,102,32,97,114,103,115,32,61,61,61,32,39,102,117,110,99,116,105,111,110,39,32,38,38,32,33,104,97,115,67,97,108,108,98,97,99,107,41,32,123,10,32,32,32,32,32,32,32,32,104,97,115,67,97,108,108,98,97,99,107,32,61,32,116,114,117,101,59,10,32,32,32,32,32,32,32,32,95,95,71,76,79,66,65,76,95,95,46,109,111,100,117,108,101,67,97,108,108,76,105,115,116,91,99,117,114,114,101,110,116,67,97,108,108,73,100,93,32,61,32,123,10,32,32,32,32,32,32,32,32,32,32,114,101,106,101,99,116,44,10,32,32,32,32,32,32,32,32,32,32,99,98,58,32,97,114,103,115,44,10,32,32,32,32,32,32,32,32,32,32,116,121,112,101,58,32,48,10,32,32,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,125,32,101,108,115,101,32,123,10,32,32,32,32,32,32,32,32,112,97,114,97,109,76,105,115,116,46,112,117,115,104,40,97,114,103,115,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,125,10,32,32,32,32,105,102,32,40,33,104,97,115,67,97,108,108,98,97,99,107,41,32,123,10,32,32,32,32,32,32,95,95,71,76,79,66,65,76,95,95,46,109,111,100,117,108,101,67,97,108,108,76,105,115,116,91,99,117,114,114,101,110,116,67,97,108,108,73,100,93,32,61,32,123,10,32,32,32,32,32,32,32,32,114,101,106,101,99,116,44,10,32,32,32,32,32,32,32,32,99,98,58,32,114,101,115,111,108,118,101,44,10,32,32,32,32,32,32,32,32,116,121,112,101,58,32,48,10,32,32,32,32,32,32,125,59,10,32,32,32,32,125,10,32,32,32,32,103,108,111,98,97,108,46,104,105,112,112,121,67,97,108,108,78,97,116,105,118,101,115,40,110,97,116,105,118,101,77,111,100,117,108,101,78,97,109,101,44,32,110,97,116,105,118,101,77,101,116,104,111,100,78,97,109,101,44,32,99,117,114,114,101,110,116,67,97,108,108,73,100,46,116,111,83,116,114,105,110,103,40,41,44,32,112,97,114,97,109,76,105,115,116,41,59,10,32,32,125,41,59,10,125,59,10,72,105,112,112,121,46,98,114,105,100,103,101,46,99,97,108,108,78,97,116,105,118,101,87,105,116,104,67,97,108,108,98,97,99,107,73,100,32,61,32,40,46,46,46,99,97,108,108,65,114,103,117,109,101,110,116,115,41,32,61,62,32,123,10,32,32,105,102,32,40,116,121,112,101,111,102,32,103,108,111,98,97,108,46,104,105,112,112,121,67,97,108,108,78,97,116,105,118,101,115,32,61,61,61,32,39,117,110,100,101,102,105,110,101,100,39,41,32,123,10,32,32,32,32,116,104,114,111,119,32,110,101,119,32,82,101,102,101,114,101,110,99,101,69,114,114,111,114,40,39,104,105,112,112,121,67,97,108,108,78,97,116,105,118,101,115,32,110,111,116,32,100,101,102,105,110,101,100,39,41,59,10,32,32,125,10,32,32,105,102,32,40,99,97,108,108,65,114,103,117,109,101,110,116,115,46,108,101,110,103,116,104,32,60,32,51,41,32,123,10,32,32,32,32,116,104,114,111,119,32,110,101,119,32,84,121,112,101,69,114,114,111,114,40,39,99,97,108,108,78,97,116,105,118,101,87,105,116,104,67,97,108,108,98,97,99,107,73,100,32,97,114,103,117,109,101,110,116,115,32,108,101,110,103,116,104,32,109,117,115,116,32,98,101,32,108,97,114,103,101,114,32,116,104,97,110,32,51,39,41,59,10,32,32,125,10,32,32,99,111,110,115,116,32,91,110,97,116,105,118,101,77,111,100,117,108,101,78,97,109,101,44,32,110,97,116,105,118,101,77,101,116,104,111,100,78,97,109,101,44,32,97,117,116,111,68,101,108,101,116,101,93,32,61,32,99,97,108,108,65,114,103,117,109,101,110,116,115,59,10,32,32,105,102,32,40,116,121,112,101,111,102,32,110,97,116,105,118,101,77,111,100,117,108,101,78,97,109,101,32,33,61,61,32,39,115,116,114,105,110,103,39,32,124,124,32,116,121,112,101,111,102,32,110,97,116,105,118,101,77,101,116,104,111,100,78,97,109,101,32,33,61,61,32,39,115,116,114,105,110,103,39,32,124,124,32,116,121,112,101,111,102,32,97,117,116,111,68,101,108,101,116,101,32,33,61,61,32,39,98,111,111,108,101,97,110,39,41,32,123,10,32,32,32,32,116,104,114,111,119,32,110,101,119,32,84,121,112,101,69,114,114,111,114,40,39,99,97,108,108,78,97,116,105,118,101,87,105,116,104,67,97,108,108,98,97,99,107,73,100,32,105,110,118,97,108,105,100,32,97,114,103,117,109,101,110,116,115,39,41,59,10,32,32,125,10,32,32,99,111,110,115,116,32,99,117,114,114,101,110,116,67,97,108,108,73,100,32,61,32,95,95,71,76,79,66,65,76,95,95,46,109,111,100,117,108,101,67,97,108,108,73,100,59,10,32,32,95,95,71,76,79,66,65,76,95,95,46,109,111,100,117,108,101,67,97,108,108,73,100,32,43,61,32,49,59,10,32,32,99,111,110,115,116,32,112,97,114,97,109,76,105,115,116,32,61,32,91,93,59,10,32,32,108,101,116,32,104,97,115,67,97,108,108,98,97,99,107,32,61,32,102,97,108,115,101,59,10,32,32,102,111,114,32,40,108,101,116,32,105,32,61,32,51,59,32,105,32,60,32,99,97,108,108,65,114,103,117,109,101,110,116,115,46,108,101,110,103,116,104,59,32,105,32,43,61,32,49,41,32,123,10,32,32,32,32,99,111,110,115,116,32,97,114,103,115,32,61,32,99,97,108,108,65,114,103,117,109,101,110,116,115,91,105,93,59,10,32,32,32,32,105,102,32,40,116,121,112,101,111,102,32,97,114,103,115,32,61,61,61,32,39,102,117,110,99,116,105,111,110,39,32,38,38,32,33,104,97,115,67,97,108,108,98,97,99,107,41,32,123,10,32,32,32,32,32,32,104,97,115,67,97,108,108,98,97,99,107,32,61,32,116,114,117,101,59,10,32,32,32,32,32,32,95,95,71,76,79,66,65,76,95,95,46,109,111,100,117,108,101,67,97,108,108,76,105,115,116,91,99,117,114,114,101,110,116,67,97,108,108,73,100,93,32,61,32,123,10,32,32,32,32,32,32,32,32,99,98,58,32,97,114,103,115,44,10,32,32,32,32,32,32,32,32,116,121,112,101,58,32,97,117,116,111,68,101,108,101,116,101,32,63,32,49,32,58,32,50,10,32,32,32,32,32,32,125,59,10,32,32,32,32,125,32,101,108,115,101,32,123,10,32,32,32,32,32,32,112,97,114,97,109,76,105,115,116,46,112,117,115,104,40,97,114,103,115,41,59,10,32,32,32,32,125,10,32,32,125,10,32,32,103,108,111,98,97,108,46,104,105,112,112,121,67,97,108,108,78,97,116,105,118,101,115,40,110,97,116,105,118,101,77,111,100,117,108,101,78,97,109,101,44,32,110,97,116,105,118,101,77,101,116,104,111,100,78,97,109,101,44,32,99,117,114,114,101,110,116,67,97,108,108,73,100,46,116,111,83,116,114,105,110,103,40,41,44,32,112,97,114,97,109,76,105,115,116,41,59,10,32,32,114,101,116,117,114,110,32,99,117,114,114,101,110,116,67,97,108,108,73,100,59,10,125,59,10,72,105,112,112,121,46,98,114,105,100,103,101,46,114,101,109,111,118,101,78,97,116,105,118,101,67,97,108,108,98,97,99,107,32,61,32,99,97,108,108,73,100,32,61,62,32,123,10,32,32,105,102,32,40,116,121,112,101,111,102,32,99,97,108,108,73,100,32,33,61,61,32,39,110,117,109,98,101,114,39,32,124,124,32,99,97,108,108,73,100,32,60,32,48,41,32,123,10,32,32,32,32,116,104,114,111,119,32,110,101,119,32,84,121,112,101,69,114,114,111,114,40,39,114,101,109,111,118,101,78,97,116,105,118,101,67,97,108,108,98,97,99,107,32,105,110,118,97,108,105,100,32,97,114,103,117,109,101,110,116,115,39,41,59,10,32,32,125,10,32,32,105,102,32,40,116,121,112,101,111,102,32,95,95,71,76,79,66,65,76,95,95,32,33,61,61,32,39,111,98,106,101,99,116,39,32,124,124,32,116,121,112,101,111,102,32,95,95,71,76,79,66,65,76,95,95,46,109,111,100,117,108,101,67,97,108,108,76,105,115,116,32,33,61,61,32,39,111,98,106,101,99,116,39,41,32,123,10,32,32,32,32,116,104,114,111,119,32,110,101,119,32,82,101,102,101,114,101,110,99,101,69,114,114,111,114,40,39,114,101,109,111,118,101,78,97,116,105,118,101,67,97,108,108,98,97,99,107,32,109,111,100,117,108,101,67,97,108,108,76,105,115,116,32,110,111,116,32,100,101,102,105,110,101,100,39,41,59,10,32,32,125,10,32,32,99,111,110,115,116,32,99,97,108,108,98,97,99,107,79,98,106,101,99,116,32,61,32,95,95,71,76,79,66,65,76,95,95,46,109,111,100,117,108,101,67,97,108,108,76,105,115,116,91,99,97,108,108,73,100,93,59,10,32,32,105,102,32,40,99,97,108,108,98,97,99,107,79,98,106,101,99,116,32,38,38,32,40,99,97,108,108,98,97,99,107,79,98,106,101,99,116,46,116,121,112,101,32,61,61,61,32,49,32,124,124,32,99,97,108,108,98,97,99,107,79,98,106,101,99,116,46,116,121,112,101,32,61,61,61,32,50,41,41,32,123,10,32,32,32,32,100,101,108,101,116,101,32,95,95,71,76,79,66,65,76,95,95,46,109,111,100,117,108,101,67,97,108,108,76,105,115,116,91,99,97,108,108,73,100,93,59,10,32,32,125,10,125,59,125,41,59,0 };  // NOLINT
  const uint8_t k_TimerModule[] = { 40,102,117,110,99,116,105,111,110,40,101,120,112,111,114,116,115,44,32,114,101,113,117,105,114,101,44,32,105,110,116,101,114,110,97,108,66,105,110,100,105,110,103,41,32,123,99,111,110,115,116,32,116,105,109,101,114,32,61,32,105,110,116,101,114,110,97,108,66,105,110,100,105,110,103,40,39,84,105,109,101,114,77,111,100,117,108,101,39,41,59,10,103,108,111,98,97,108,46,115,101,116,84,105,109,101,111,117,116,32,61,32,102,117,110,99,116,105,111,110,32,40,99,98,44,32,115,108,101,101,112,84,105,109,101,41,32,123,10,32,32,99,111,110,115,116,32,97,114,103,115,32,61,32,65,114,114,97,121,46,112,114,111,116,111,116,121,112,101,46,115,108,105,99,101,46,99,97,108,108,40,97,114,103,117,109,101,110,116,115,44,32,50,41,59,10,32,32,114,101,116,117,114,110,32,116,105,109,101,114,46,83,101,116,84,105,109,101,111,117,116,40,40,41,32,61,62,32,99,98,46,97,112,112,108,121,40,110,117,108,108,44,32,97,114,103,115,41,44,32,115,108,101,101,112,84,105,109,101,41,59,10,125,59,10,103,108,111,98,97,108,46,99,108,101,97,114,84,105,109,101,111,117,116,32,61,32,116,105,109,101,114,73,100,32,61,62,32,123,10,32,32,105,102,32,40,78,117,109,98,101,114,46,105,115,73,110,116,101,103,101,114,40,116,105,109,101,114,73,100,41,32,38,38,32,116,105,109,101,114,73,100,32,62,32,48,41,32,123,10,32,32,32,32,116,105,109,101,114,46,67,108,101,97,114,84,105,109,101,111,117,116,40,116,105,109,101,114,73,100,41,59,10,32,32,125,10,125,59,10,103,108,111,98,97,108,46,115,101,116,73,110,116,101,114,118,97,108,32,61,32,102,117,110,99,116,105,111,110,32,40,99,98,44,32,105,110,116,101,114,118,97,108,84,105,109,101,41,32,123,10,32,32,99,111,110,115,116,32,97,114,103,115,32,61,32,65,114,114,97,121,46,112,114,111,116,111,116,121,112,101,46,115,108,105,99,101,46,99,97,108,108,40,97,114,103,117,109,101,110,116,115,44,32,50,41,59,10,32,32,114,101,116,117,114,110,32,116,105,109,101,114,46,83,101,116,73,110,116,101,114,118,97,108,40,40,41,32,61,62,32,99,98,46,97,112,112,108,121,40,110,117,108,108,44,32,97,114,103,115,41,44,32,105,110,116,101,114,118,97,108,84,105,109,101,41,59,10,125,59,10,103,108,111,98,97,108,46,99,108,101,97,114,73,110,116,101,114,118,97,108,32,61,32,116,105,109,101,114,73,100,32,61,62,32,123,10,32,32,105,102,32,40,78,117,109,98,101,114,46,105,115,73,110,116,101,103,101,114,40,116,105,109,101,114,73,100,41,32,38,38,32,116,105,109,101,114,73,100,32,62,32,48,41,32,123,10,32,32,32,32,116,105,109,101,114,46,67,108,101,97,114,73,110,116,101,114,118,97,108,40,116,105,109,101,114,73,100,41,59,10,32,32,125,10,125,59,10,103,108,111,98,97,108,46,114,101,113,117,101,115,116,73,100,108,101,67,97,108,108,98,97,99,107,32,61,32,40,99,98,44,32,111,112,116,41,32,61,62,32,123,10,32,32,114,101,116,117,114,110,32,116,105,109,101,114,46,82,101,113,117,101,115,116,73,100,108,101,67,97,108,108,98,97,99,107,40,112,97,114,97,109,32,61,62,32,123,10,32,32,32,32,99,111,110,115,116,32,110,111,119,32,61,32,68,97,116,101,46,110,111,119,40,41,59,10,32,32,32,32,99,111,110,115,116,32,116,105,109,101,82,101,109,97,105,110,105,110,103,32,61,32,112,97,114,97,109,46,116,105,109,101,82,101,109,97,105,110,105,110,103,59,10,32,32,32,32,99,98,40,123,10,32,32,32,32,32,32,100,105,100,84,105,109,101,111,117,116,58,32,112,97,114,97,109,46,100,105,100,84,105,109,101,111,117,116,44,10,32,32,32,32,32,32,116,105,109,101,82,101,109,97,105,110,105,110,103,58,32,40,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,108,101,116,32,116,105,109,101,32,61,32,116,105,109,101,82,101,109,97,105,110,105,110,103,32,45,32,40,68,97,116,101,46,110,111,119,40,41,32,45,32,110,111,119,41,59,10,32,32,32,32,32,32,32,32,116,105,109,101,32,61,32,116,105,109,101,32,60,32,48,32,63,32,48,32,58,32,116,105,109,101,59,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,116,105,109,101,59,10,32,32,32,32,32,32,125,10,32,32,32,32,125,41,59,10,32,32,125,44,32,111,112,116,41,59,10,125,59,10,103,108,111,98,97,108,46,99,97,110,99,101,108,73,100,108,101,67,97,108,108,98,97,99,107,32,61,32,116,105,109,101,114,73,100,32,61,62,32,123,10,32,32,105,102,32,40,78,117,109,98,101,114,46,105,115,73,110,116,101,103,101,114,40,116,105,109,101,114,73,100,41,32,38,38,32,116,105,109,101,114,73,100,32,62,32,48,41,32,123,10,32,32,32,32,116,105,109,101,114,46,67,97,110,99,101,108,73,100,108,101,67,97,108,108,98,97,99,107,40,116,105,109,101,114,73,100,41,59,10,32,32,125,10,125,59,125,41,59,0 };  // NOLINT
  const uint8_t k_ConsoleModule[] = { 40,102,117,110,99,116,105,111,110,40,101,120,112,111,114,116,115,44,32,114,101,113,117,105,114,101,44,32,105,110,116,101,114,110,97,108,66,105,110,100,105,110,103,41,32,123,99,111,110,115,116,32,99,111,110,115,111,108,101,77,111,100,117,108,101,32,61,32,105,110,116,101,114,110,97,108,66,105,110,100,105,110,103,40,39,67,111,110,115,111,108,101,77,111,100,117,108,101,39,41,59,10,99,111,110,115,116,32,105,110,100,101,110,116,32,61,32,108,101,118,101,108,32,61,62,32,123,10,32,32,108,101,116,32,116,97,98,32,61,32,39,39,59,10,32,32,119,104,105,108,101,32,40,116,97,98,46,108,101,110,103,116,104,32,60,32,108,101,118,101,108,32,42,32,50,41,32,123,10,32,32,32,32,116,97,98,32,43,61,32,39,32,32,39,59,10,32,32,125,10,32,32,114,101,116,117,114,110,32,116,97,98,59,10,125,59,10,108,101,116,32,105,110,115,112,101,99,116,79,98,106,101,99,116,32,61,32,110,117,108,108,59,10,108,101,116,32,105,110,115,112,101,99,116,32,61,32,110,117,108,108,59,10,102,117,110,99,116,105,111,110,32,103,101,116,79,119,110,80,114,111,112,101,114,116,121,68,101,115,99,114,105,112,116,111,114,115,40,112,97,114,97,109,41,32,123,10,32,32,99,111,110,115,116,32,114,101,115,117,108,116,32,61,32,123,125,59,10,32,32,99,111,110,115,116,32,112,114,111,112,75,101,121,115,32,61,32,79,98,106,101,99,116,46,107,101,121,115,40,112,97,114,97,109,41,59,10,32,32,112,114,111,112,75,101,121,115,46,102,111,114,69,97,99,104,40,40,107,101,121,44,32,105,110,100,101,120,41,32,61,62,32,123,10,32,32,32,32,114,101,115,117,108,116,91,112,114,111,112,75,101,121,115,91,105,110,100,101,120,93,93,32,61,32,79,98,106,101,99,116,46,103,101,116,79,119,110,80,114,111,112,101,114,116,121,68,101,115,99,114,105,112,116,111,114,40,112,97,114,97,109,44,32,112,114,111,112,75,101,121,115,91,105,110,100,101,120,93,41,59,10,32,32,125,41,59,10,32,32,114,101,116,117,114,110,32,114,101,115,117,108,116,59,10,125,10,105,110,115,112,101,99,116,79,98,106,101,99,116,32,61,32,40,118,97,108,117,101,44,32,108,101,118,101,108,32,61,32,48,44,32,114,101,99,117,114,115,101,84,105,109,101,115,32,61,32,50,44,32,108,105,110,101,98,114,101,97,107,32,61,32,39,92,110,39,41,32,61,62,32,123,10,32,32,105,102,32,40,118,97,108,117,101,32,61,61,61,32,110,117,108,108,41,32,123,10,32,32,32,32,114,101,116,117,114,110,32,39,110,117,108,108,39,59,10,32,32,125,10,32,32,105,102,32,40,65,114,114,97,121,46,105,115,65,114,114,97,121,40,118,97,108,117,101,41,41,32,123,10,32,32,32,32,114,101,116,117,114,110,32,96,91,32,36,123,118,97,108,117,101,46,109,97,112,40,105,116,101,109,32,61,62,32,105,110,115,112,101,99,116,40,105,116,101,109,44,32,108,101,118,101,108,32,43,32,49,44,32,114,101,99,117,114,115,101,84,105,109,101,115,32,45,32,49,41,41,46,106,111,105,110,40,39,44,32,39,41,125,32,93,96,59,10,32,32,125,10,32,32,115,119,105,116,99,104,32,40,79,98,106,101,99,116,46,112,114,111,116,111,116,121,112,101,46,116,111,83,116,114,105,110,103,46,99,97,108,108,40,118,97,108,117,101,41,41,32,123,10,32,32,32,32,99,97,115,101,32,39,91,111,98,106,101,99,116,32,68,97,116,101,93,39,58,10,32,32,32,32,32,32,123,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,68,97,116,101,46,112,114,111,116,111,116,121,112,101,46,116,111,73,83,79,83,116,114,105,110,103,46,99,97,108,108,40,118,97,108,117,101,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,99,97,115,101,32,39,91,111,98,106,101,99,116,32,82,101,103,69,120,112,93,39,58,10,32,32,32,32,32,32,123,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,82,101,103,69,120,112,46,112,114,111,116,111,116,121,112,101,46,116,111,83,116,114,105,110,103,46,99,97,108,108,40,118,97,108,117,101,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,99,97,115,101,32,39,91,111,98,106,101,99,116,32,69,114,114,111,114,93,39,58,10,32,32,32,32,32,32,123,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,96,36,123,118,97,108,117,101,46,115,116,97,99,107,32,124,124,32,69,114,114,111,114,46,112,114,111,116,111,116,121,112,101,46,116,111,83,116,114,105,110,103,46,99,97,108,108,40,118,97,108,117,101,41,125,96,59,10,32,32,32,32,32,32,125,10,32,32,32,32,99,97,115,101,32,39,91,111,98,106,101,99,116,32,83,101,116,93,39,58,10,32,32,32,32,32,32,123,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,96,83,101,116,32,123,32,36,123,91,46,46,46,118,97,108,117,101,93,46,109,97,112,40,105,116,101,109,32,61,62,32,105,110,115,112,101,99,116,40,105,116,101,109,44,32,108,101,118,101,108,32,43,32,49,44,32,114,101,99,117,114,115,101,84,105,109,101,115,32,45,32,49,44,32,108,105,110,101,98,114,101,97,107,41,41,46,106,111,105,110,40,39,44,32,39,41,125,32,125,96,59,10,32,32,32,32,32,32,125,10,32,32,32,32,99,97,115,101,32,39,91,111,98,106,101,99,116,32,87,101,97,107,83,101,116,93,39,58,10,32,32,32,32,32,32,123,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,39,87,101,97,107,83,101,116,32,123,32,91,105,116,101,109,115,32,117,110,107,110,111,119,110,93,32,125,39,59,10,32,32,32,32,32,32,125,10,32,32,32,32,99,97,115,101,32,39,91,111,98,106,101,99,116,32,77,97,112,93,39,58,10,32,32,32,32,32,32,123,10,32,32,32,32,32,32,32,32,99,111,110,115,116,32,101,110,116,114,105,101,115,32,61,32,91,93,59,10,32,32,32,32,32,32,32,32,118,97,108,117,101,46,102,111,114,69,97,99,104,40,40,118,97,108,44,32,107,101,121,41,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,101,110,116,114,105,101,115,46,112,117,115,104,40,96,36,123,105,110,115,112,101,99,116,40,107,101,121,44,32,114,101,99,117,114,115,101,84,105,109,101,115,32,42,32,45,49,44,32,114,101,99,117,114,115,101,84,105,109,101,115,32,45,32,49,44,32,39,39,41,125,32,61,62,32,36,123,105,110,115,112,101,99,116,40,118,97,108,44,32,114,101,99,117,114,115,101,84,105,109,101,115,32,42,32,45,49,44,32,114,101,99,117,114,115,101,84,105,109,101,115,32,45,32,49,44,32,39,39,41,125,96,41,59,10,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,96,77,97,112,32,123,32,36,123,101,110,116,114,105,101,115,46,106,111,105,110,40,39,44,32,39,41,125,32,125,96,59,10,32,32,32,32,32,32,125,10,32,32,32,32,99,97,115,101,32,39,91,111,98,106,101,99,116,32,87,101,97,107,77,97,112,93,39,58,10,32,32,32,32,32,32,123,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,39,87,101,97,107,77,97,112,32,123,32,91,105,116,101,109,115,32,117,110,107,110,111,119,110,93,32,125,39,59,10,32,32,32,32,32,32,125,10,32,32,32,32,100,101,102,97,117,108,116,58,10,32,32,32,32,32,32,123,10,32,32,32,32,32,32,32,32,98,114,101,97,107,59,10,32,32,32,32,32,32,125,10,32,32,125,10,32,32,105,102,32,40,118,97,108,117,101,32,105,110,115,116,97,110,99,101,111,102,32,69,114,114,111,114,41,32,123,10,32,32,32,32,114,101,116,117,114,110,32,96,36,123,118,97,108,117,101,46,115,116,97,99,107,32,124,124,32,69,114,114,111,114,46,112,114,111,116,111,116,121,112,101,46,116,111,83,116,114,105,110,103,46,99,97,108,108,40,118,97,108,117,101,41,125,96,59,10,32,32,125,10,32,32,99,111,110,115,116,32,100,101,115,99,115,32,61,32,103,101,116,79,119,110,80,114,111,112,101,114,116,121,68,101,115,99,114,105,112,116,111,114,115,40,118,97,108,117,101,41,59,10,32,32,99,111,110,115,116,32,107,101,121,115,32,61,32,79,98,106,101,99,116,46,107,101,121,115,40,100,101,115,99,115,41,59,10,32,32,99,111,110,115,116,32,112,97,105,114,115,32,61,32,91,93,59,10,32,32,107,101,121,115,46,102,111,114,69,97,99,104,40,107,101,121,32,61,62,32,123,10,32,32,32,32,99,111,110,115,116,32,100,101,115,99,32,61,32,100,101,115,99,115,91,107,101,121,93,59,10,32,32,32,32,99,111,110,115,116,32,105,116,101,109,80,114,101,102,105,120,32,61,32,96,36,123,105,110,100,101,110,116,40,108,101,118,101,108,32,43,32,49,41,125,36,123,107,101,121,125,32,58,32,96,59,10,32,32,32,32,105,102,32,40,100,101,115,99,46,103,101,116,41,32,123,10,32,32,32,32,32,32,105,102,32,40,100,101,115,99,46,115,101,116,41,32,123,10,32,32,32,32,32,32,32,32,112,97,105,114,115,46,112,117,115,104,40,96,36,123,105,116,101,109,80,114,101,102,105,120,125,91,71,101,116,116,101,114,47,83,101,116,116,101,114,93,96,41,59,10,32,32,32,32,32,32,125,32,101,108,115,101,32,123,10,32,32,32,32,32,32,32,32,112,97,105,114,115,46,112,117,115,104,40,96,36,123,105,116,101,109,80,114,101,102,105,120,125,91,71,101,116,116,101,114,93,96,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,125,32,101,108,115,101,32,105,102,32,40,100,101,115,99,46,115,101,116,41,32,123,10,32,32,32,32,32,32,112,97,105,114,115,46,112,117,115,104,40,96,36,123,105,116,101,109,80,114,101,102,105,120,125,91,83,101,116,116,101,114,93,96,41,59,10,32,32,32,32,125,32,101,108,115,101,32,105,102,32,40,100,101,115,99,46,118,97,108,117,101,41,32,123,10,32,32,32,32,32,32,112,97,105,114,115,46,112,117,115,104,40,96,36,123,105,116,101,109,80,114,101,102,105,120,125,36,123,105,110,115,112,101,99,116,40,100,101,115,99,46,118,97,108,117,101,44,32,108,101,118,101,108,32,43,32,49,44,32,114,101,99,117,114,115,101,84,105,109,101,115,32,45,32,49,44,32,108,105,110,101,98,114,101,97,107,41,125,96,41,59,10,32,32,32,32,125,10,32,32,125,41,59,10,32,32,114,101,116,117,114,110,32,96,123,36,123,108,105,110,101,98,114,101,97,107,125,36,123,112,97,105,114,115,46,106,111,105,110,40,96,44,32,36,123,108,105,110,101,98,114,101,97,107,125,96,41,125,36,123,108,105,110,101,98,114,101,97,107,125,36,123,105,110,100,101,110,116,40,108,101,118,101,108,41,125,125,96,59,10,125,59,10,105,110,115,112,101,99,116,32,61,32,40,118,97,108,117,101,44,32,108,101,118,101,108,32,61,32,48,44,32,114,101,99,117,114,115,101,84,105,109,101,115,32,61,32,50,44,32,108,105,110,101,98,114,101,97,107,32,61,32,39,92,110,39,41,32,61,62,32,123,10,32,32,115,119,105,116,99,104,32,40,116,121,112,101,111,102,32,118,97,108,117,101,41,32,123,10,32,32,32,32,99,97,115,101,32,39,115,116,114,105,110,103,39,58,10,32,32,32,32,32,32,114,101,116,117,114,110,32,96,39,36,123,118,97,108,117,101,125,39,96,59,10,32,32,32,32,99,97,115,101,32,39,115,121,109,98,111,108,39,58,10,32,32,32,32,32,32,114,101,116,117,114,110,32,118,97,108,117,101,46,116,111,83,116,114,105,110,103,40,41,59,10,32,32,32,32,99,97,115,101,32,39,102,117,110,99,116,105,111,110,39,58,10,32,32,32,32,32,32,114,101,116,117,114,110,32,96,91,70,117,110,99,116,105,111,110,36,123,118,97,108,117,101,46,110,97,109,101,32,63,32,96,58,32,36,123,118,97,108,117,101,46,110,97,109,101,125,96,32,58,32,39,39,125,93,96,59,10,32,32,32,32,99,97,115,101,32,39,111,98,106,101,99,116,39,58,10,32,32,32,32,32,32,105,102,32,40,114,101,99,117,114,115,101,84,105,109,101,115,32,60,32,48,41,32,123,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,39,91,79,98,106,101,99,116,93,39,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,105,110,115,112,101,99,116,79,98,106,101,99,116,40,118,97,108,117,101,44,32,108,101,118,101,108,44,32,114,101,99,117,114,115,101,84,105,109,101,115,44,32,108,105,110,101,98,114,101,97,107,41,59,10,32,32,32,32,99,97,115,101,32,39,98,105,103,105,110,116,39,58,10,32,32,32,32,32,32,114,101,116,117,114,110,32,96,110,36,123,118,97,108,117,101,125,96,59,10,32,32,32,32,99,97,115,101,32,39,117,110,100,101,102,105,110,101,100,39,58,10,32,32,32,32,99,97,115,101,32,39,110,117,109,98,101,114,39,58,10,32,32,32,32,99,97,115,101,32,39,98,111,111,108,101,97,110,39,58,10,32,32,32,32,100,101,102,97,117,108,116,58,10,32,32,32,32,32,32,114,101,116,117,114,110,32,96,36,123,118,97,108,117,101,125,96,59,10,32,32,125,10,125,59,10,108,101,116,32,118,109,67,111,110,115,111,108,101,59,10,105,102,32,40,116,121,112,101,111,102,32,99,111,110,115,111,108,101,32,33,61,61,32,39,117,110,100,101,102,105,110,101,100,39,41,32,123,10,32,32,118,109,67,111,110,115,111,108,101,32,61,32,99,111,110,115,111,108,101,59,10,125,10,99,111,110,115,116,32,115,117,112,112,111,114,116,65,112,105,76,105,115,116,32,61,32,91,39,108,111,103,39,44,32,39,105,110,102,111,39,44,32,39,119,97,114,110,39,44,32,39,101,114,114,111,114,39,44,32,39,100,101,98,117,103,39,93,59,10,103,108,111,98,97,108,46,67,111,110,115,111,108,101,77,111,100,117,108,101,32,61,32,123,125,59,10,115,117,112,112,111,114,116,65,112,105,76,105,115,116,46,102,111,114,69,97,99,104,40,97,112,105,32,61,62,32,123,10,32,32,103,108,111,98,97,108,46,67,111,110,115,111,108,101,77,111,100,117,108,101,91,97,112,105,93,32,61,32,40,46,46,46,97,114,103,115,41,32,61,62,32,123,10,32,32,32,32,99,111,110,115,116,32,108,111,103,32,61,32,97,114,103,115,46,109,97,112,40,97,114,103,32,61,62,32,105,110,115,112,101,99,116,40,97,114,103,41,41,46,106,111,105,110,40,39,32,39,41,59,10,32,32,32,32,99,111,110,115,111,108,101,77,111,100,117,108,101,46,76,111,103,40,108,111,103,44,32,97,112,105,41,59,10,32,32,125,59,10,125,41,59,10,103,108,111,98,97,108,46,99,111,110,115,111,108,101,32,61,32,123,10,32,32,114,101,112,111,114,116,85,110,99,97,117,103,104,116,69,120,99,101,112,116,105,111,110,40,101,114,114,111,114,41,32,123,10,32,32,32,32,105,102,32,40,101,114,114,111,114,32,38,38,32,101,114,114,111,114,32,105,110,115,116,97,110,99,101,111,102,32,69,114,114,111,114,41,32,123,10,32,32,32,32,32,32,116,104,114,111,119,32,101,114,114,111,114,59,10,32,32,32,32,125,10,32,32,125,10,125,59,10,105,102,32,40,118,109,67,111,110,115,111,108,101,41,32,123,10,32,32,79,98,106,101,99,116,46,107,101,121,115,40,118,109,67,111,110,115,111,108,101,41,46,102,111,114,69,97,99,104,40,97,112,105,32,61,62,32,123,10,32,32,32,32,103,108,111,98,97,108,46,99,111,110,115,111,108,101,91,97,112,105,93,32,61,32,118,109,67,111,110,115,111,108,101,91,97,112,105,93,59,10,32,32,125,41,59,10,125,125,41,59,0 };  // NOLINT
  const uint8_t k_Network[] = { 40,102,117,110,99,116,105,111,110,40,101,120,112,111,114,116,115,44,32,114,101,113,117,105,114,101,44,32,105,110,116,101,114,110,97,108,66,105,110,100,105,110,103,41,32,123,103,108,111,98,97,108,46,72,101,97,100,101,114,115,32,61,32,99,108,97,115,115,32,72,101,97,100,101,114,115,32,123,10,32,32,99,111,110,115,116,114,117,99,116,111,114,40,105,110,105,116,86,97,108,117,101,115,41,32,123,10,32,32,32,32,116,104,105,115,46,95,104,101,97,100,101,114,115,32,61,32,123,125,59,10,32,32,32,32,105,102,32,40,116,121,112,101,111,102,32,105,110,105,116,86,97,108,117,101,115,32,61,61,61,32,39,111,98,106,101,99,116,39,41,32,123,10,32,32,32,32,32,32,79,98,106,101,99,116,46,107,101,121,115,40,105,110,105,116,86,97,108,117,101,115,41,46,102,111,114,69,97,99,104,40,107,101,121,32,61,62,32,123,10,32,32,32,32,32,32,32,32,99,111,110,115,116,32,118,97,108,117,101,32,61,32,105,110,105,116,86,97,108,117,101,115,91,107,101,121,93,59,10,32,32,32,32,32,32,32,32,105,102,32,40,118,97,108,117,101,32,105,110,115,116,97,110,99,101,111,102,32,65,114,114,97,121,41,32,123,10,32,32,32,32,32,32,32,32,32,32,118,97,108,117,101,46,102,111,114,69,97,99,104,40,111,110,101,68,97,116,97,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,97,112,112,101,110,100,40,107,101,121,44,32,111,110,101,68,97,116,97,41,59,10,32,32,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,32,32,125,32,101,108,115,101,32,123,10,32,32,32,32,32,32,32,32,32,32,116,104,105,115,46,115,101,116,40,107,101,121,44,32,118,97,108,117,101,41,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,125,41,59,10,32,32,32,32,125,10,32,32,125,10,32,32,97,112,112,101,110,100,40,110,97,109,101,44,32,118,97,108,117,101,41,32,123,10,32,32,32,32,105,102,32,40,116,121,112,101,111,102,32,110,97,109,101,32,33,61,61,32,39,115,116,114,105,110,103,39,32,124,124,32,116,121,112,101,111,102,32,118,97,108,117,101,32,33,61,61,32,39,115,116,114,105,110,103,39,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,59,10,32,32,32,32,125,10,32,32,32,32,105,102,32,40,116,104,105,115,46,104,97,115,40,110,97,109,101,41,41,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,99,117,114,114,32,61,32,116,104,105,115,46,95,104,101,97,100,101,114,115,91,110,97,109,101,93,59,10,32,32,32,32,32,32,99,117,114,114,46,112,117,115,104,40,118,97,108,117,101,41,59,10,32,32,32,32,32,32,116,104,105,115,46,95,104,101,97,100,101,114,115,91,110,97,109,101,93,32,61,32,99,117,114,114,59,10,32,32,32,32,125,32,101,108,115,101,32,123,10,32,32,32,32,32,32,116,104,105,115,46,95,104,101,97,100,101,114,115,91,110,97,109,101,93,32,61,32,91,118,97,108,117,101,93,59,10,32,32,32,32,125,10,32,32,125,10,32,32,115,101,116,40,110,97,109,101,44,32,118,97,108,117,101,41,32,123,10,32,32,32,32,105,102,32,40,116,121,112,101,111,102,32,110,97,109,101,32,33,61,61,32,39,115,116,114,105,110,103,39,32,124,124,32,116,121,112,101,111,102,32,118,97,108,117,101,32,33,61,61,32,39,115,116,114,105,110,103,39,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,59,10,32,32,32,32,125,10,32,32,32,32,116,104,105,115,46,95,104,101,97,100,101,114,115,91,110,97,109,101,93,32,61,32,91,118,97,108,117,101,93,59,10,32,32,125,10,32,32,103,101,116,65,108,108,40,41,32,123,10,32,32,32,32,105,102,32,40,33,116,104,105,115,46,95,104,101,97,100,101,114,115,91,39,67,111,110,116,101,110,116,45,84,121,112,101,39,93,32,38,38,32,33,116,104,105,115,46,95,104,101,97,100,101,114,115,91,39,99,111,110,116,101,110,116,45,116,121,112,101,39,93,41,32,123,10,32,32,32,32,32,32,116,104,105,115,46,95,104,101,97,100,101,114,115,91,39,99,111,110,116,101,110,116,45,116,121,112,101,39,93,32,61,32,91,39,116,101,120,116,47,112,108,97,105,110,59,99,104,97,114,115,101,116,61,85,84,70,45,56,39,93,59,10,32,32,32,32,125,10,32,32,32,32,114,101,116,117,114,110,32,79,98,106,101,99,116,46,97,115,115,105,103,110,40,123,125,44,32,116,104,105,115,46,95,104,101,97,100,101,114,115,41,59,10,32,32,125,10,32,32,100,101,108,101,116,101,40,110,97,109,101,41,32,123,10,32,32,32,32,105,102,32,40,116,121,112,101,111,102,32,110,97,109,101,32,33,61,61,32,39,115,116,114,105,110,103,39,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,59,10,32,32,32,32,125,10,32,32,32,32,105,102,32,40,116,121,112,101,111,102,32,116,104,105,115,46,95,104,101,97,100,101,114,115,91,110,97,109,101,93,32,33,61,61,32,39,117,110,100,101,102,105,110,101,100,39,41,32,123,10,32,32,32,32,32,32,100,101,108,101,116,101,32,116,104,105,115,46,95,104,101,97,100,101,114,115,46,110,97,109,101,59,10,32,32,32,32,125,10,32,32,125,10,32,32,103,101,116,40,110,97,109,101,41,32,123,10,32,32,32,32,105,102,32,40,116,121,112,101,111,102,32,110,97,109,101,32,33,61,61,32,39,115,116,114,105,110,103,39,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,117,110,100,101,102,105,110,101,100,59,10,32,32,32,32,125,10,32,32,32,32,114,101,116,117,114,110,32,116,104,105,115,46,95,104,101,97,100,101,114,115,91,110,97,109,101,93,59,10,32,32,125,10,32,32,104,97,115,40,110,97,109,101,41,32,123,10,32,32,32,32,105,102,32,40,116,121,112,101,111,102,32,110,97,109,101,32,33,61,61,32,39,115,116,114,105,110,103,39,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,102,97,108,115,101,59,10,32,32,32,32,125,10,32,32,32,32,114,101,116,117,114,110,32,116,121,112,101,111,102,32,116,104,105,115,46,95,104,101,97,100,101,114,115,91,110,97,109,101,93,32,33,61,61,32,39,117,110,100,101,102,105,110,101,100,39,59,10,32,32,125,10,125,59,10,103,108,111,98,97,108,46,82,101,115,112,111,110,115,101,32,61,32,99,108,97,115,115,32,82,101,115,112,111,110,115,101,32,123,10,32,32,99,111,110,115,116,114,117,99,116,111,114,40,114,101,115,112,111,110,115,101,41,32,123,10,32,32,32,32,99,111,110,115,116,32,114,101,115,112,32,61,32,114,101,115,112,111,110,115,101,32,124,124,32,123,125,59,10,32,32,32,32,116,104,105,115,46,115,116,97,116,117,115,32,61,32,114,101,115,112,46,115,116,97,116,117,115,67,111,100,101,32,61,61,61,32,117,110,100,101,102,105,110,101,100,32,63,32,50,48,48,32,58,32,114,101,115,112,46,115,116,97,116,117,115,67,111,100,101,59,10,32,32,32,32,116,104,105,115,46,115,116,97,116,117,115,84,101,120,116,32,61,32,114,101,115,112,46,115,116,97,116,117,115,76,105,110,101,32,124,124,32,39,78,111,116,32,70,111,117,110,100,39,59,10,32,32,32,32,116,104,105,115,46,104,101,97,100,101,114,115,32,61,32,114,101,115,112,46,114,101,115,112,72,101,97,100,101,114,115,32,124,124,32,123,125,59,10,32,32,32,32,116,104,105,115,46,98,111,100,121,32,61,32,114,101,115,112,46,114,101,115,112,66,111,100,121,32,124,124,32,39,39,59,10,32,32,32,32,116,104,105,115,46,111,107,32,61,32,116,104,105,115,46,115,116,97,116,117,115,32,62,61,32,50,48,48,32,38,38,32,116,104,105,115,46,115,116,97,116,117,115,32,60,61,32,50,57,57,59,10,32,32,125,10,32,32,106,115,111,110,40,41,32,123,10,32,32,32,32,114,101,116,117,114,110,32,110,101,119,32,80,114,111,109,105,115,101,40,40,114,101,115,111,108,118,101,44,32,114,101,106,101,99,116,41,32,61,62,32,123,10,32,32,32,32,32,32,108,101,116,32,106,115,111,110,105,102,121,32,61,32,110,117,108,108,59,10,32,32,32,32,32,32,116,114,121,32,123,10,32,32,32,32,32,32,32,32,106,115,111,110,105,102,121,32,61,32,74,83,79,78,46,112,97,114,115,101,40,116,104,105,115,46,98,111,100,121,41,59,10,32,32,32,32,32,32,32,32,114,101,115,111,108,118,101,40,106,115,111,110,105,102,121,41,59,10,32,32,32,32,32,32,125,32,99,97,116,99,104,32,40,101,41,32,123,10,32,32,32,32,32,32,32,32,114,101,106,101,99,116,40,110,101,119,32,69,114,114,111,114,40,39,101,114,114,111,114,32,112,97,114,115,105,110,103,32,111,98,106,101,99,116,39,41,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,125,41,59,10,32,32,125,10,32,32,116,101,120,116,40,41,32,123,10,32,32,32,32,114,101,116,117,114,110,32,80,114,111,109,105,115,101,46,114,101,115,111,108,118,101,40,116,104,105,115,46,98,111,100,121,41,59,10,32,32,125,10,125,59,10,99,111,110,115,116,32,109,101,116,104,111,100,115,32,61,32,91,39,68,69,76,69,84,69,39,44,32,39,71,69,84,39,44,32,39,72,69,65,68,39,44,32,39,79,80,84,73,79,78,83,39,44,32,39,80,79,83,84,39,44,32,39,80,85,84,39,93,59,10,102,117,110,99,116,105,111,110,32,110,111,114,109,97,108,105,122,101,77,101,116,104,111,100,40,109,101,116,104,111,100,41,32,123,10,32,32,99,111,110,115,116,32,117,112,67,97,115,101,100,32,61,32,109,101,116,104,111,100,46,116,111,85,112,112,101,114,67,97,115,101,40,41,59,10,32,32,114,101,116,117,114,110,32,109,101,116,104,111,100,115,46,105,110,100,101,120,79,102,40,117,112,67,97,115,101,100,41,32,62,32,45,49,32,63,32,117,112,67,97,115,101,100,32,58,32,109,101,116,104,111,100,59,10,125,10,103,108,111,98,97,108,46,102,101,116,99,104,32,61,32,40,117,114,108,44,32,111,112,116,105,111,110,115,41,32,61,62,32,123,10,32,32,105,102,32,40,116,121,112,101,111,102,32,117,114,108,32,33,61,61,32,39,115,116,114,105,110,103,39,41,32,123,10,32,32,32,32,114,101,116,117,114,110,32,80,114,111,109,105,115,101,46,114,101,106,101,99,116,40,110,101,119,32,69,114,114,111,114,40,39,111,110,108,121,32,83,116,114,105,110,103,32,117,114,108,32,115,117,112,112,111,114,116,101,100,39,41,41,59,10,32,32,125,10,32,32,99,111,110,115,116,32,123,10,32,32,32,32,109,101,116,104,111,100,44,10,32,32,32,32,104,101,97,100,101,114,115,44,10,32,32,32,32,98,111,100,121,44,10,32,32,32,32,46,46,46,111,116,104,101,114,79,112,116,105,111,110,115,10,32,32,125,32,61,32,111,112,116,105,111,110,115,32,124,124,32,123,125,59,10,32,32,108,101,116,32,114,101,113,72,101,97,100,115,32,61,32,123,125,59,10,32,32,105,102,32,40,104,101,97,100,101,114,115,41,32,123,10,32,32,32,32,105,102,32,40,104,101,97,100,101,114,115,32,105,110,115,116,97,110,99,101,111,102,32,103,108,111,98,97,108,46,72,101,97,100,101,114,115,41,32,123,10,32,32,32,32,32,32,114,101,113,72,101,97,100,115,32,61,32,104,101,97,100,101,114,115,46,103,101,116,65,108,108,40,41,59,10,32,32,32,32,125,32,101,108,115,101,32,105,102,32,40,104,101,97,100,101,114,115,46,99,111,110,115,116,114,117,99,116,111,114,32,61,61,61,32,79,98,106,101,99,116,41,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,104,101,97,100,101,114,115,73,110,115,116,97,110,99,101,32,61,32,110,101,119,32,103,108,111,98,97,108,46,72,101,97,100,101,114,115,40,104,101,97,100,101,114,115,41,59,10,32,32,32,32,32,32,114,101,113,72,101,97,100,115,32,61,32,104,101,97,100,101,114,115,73,110,115,116,97,110,99,101,46,103,101,116,65,108,108,40,41,59,10,32,32,32,32,125,32,101,108,115,101,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,32,80,114,111,109,105,115,101,46,114,101,106,101,99,116,40,110,101,119,32,69,114,114,111,114,40,39,79,110,108,121,32,72,101,97,100,101,114,115,32,105,110,115,116,97,110,99,101,32,111,114,32,97,32,112,117,114,101,32,111,98,106,101,99,116,32,105,115,32,97,99,99,101,112,116,97,98,108,101,32,102,111,114,32,104,101,97,100,101,114,115,32,111,112,116,105,111,110,39,41,41,59,10,32,32,32,32,125,10,32,32,125,10,32,32,99,111,110,115,116,32,114,101,113,79,112,116,105,111,110,115,32,61,32,123,10,32,32,32,32,117,114,108,44,10,32,32,32,32,109,101,116,104,111,100,58,32,110,111,114,109,97,108,105,122,101,77,101,116,104,111,100,40,109,101,116,104,111,100,32,124,124,32,39,71,69,84,39,41,44,10,32,32,32,32,104,101,97,100,101,114,115,58,32,114,101,113,72,101,97,100,115,32,124,124,32,123,125,44,10,32,32,32,32,98,111,100,121,58,32,98,111,100,121,32,124,124,32,39,39,44,10,32,32,32,32,46,46,46,111,116,104,101,114,79,112,116,105,111,110,115,10,32,32,125,59,10,32,32,114,101,116,117,114,110,32,110,101,119,32,80,114,111,109,105,115,101,40,40,114,101,115,111,108,118,101,44,32,114,101,106,101,99,116,41,32,61,62,32,123,10,32,32,32,32,99,111,110,115,116,32,114,101,115,117,108,116,32,61,32,72,105,112,112,121,46,98,114,105,100,103,101,46,99,97,108,108,78,97,116,105,118,101,87,105,116,104,80,114,111,109,105,115,101,40,39,110,101,116,119,111,114,107,39,44,32,39,102,101,116,99,104,39,44,32,114,101,113,79,112,116,105,111,110,115,41,59,10,32,32,32,32,114,101,115,117,108,116,46,116,104,101,110,40,114,101,115,112,32,61,62,32,123,10,32,32,32,32,32,32,105,102,32,40,116,121,112,101,111,102,32,114,101,115,112,32,61,61,61,32,39,111,98,106,101,99,116,39,41,32,123,10,32,32,32,32,32,32,32,32,99,111,110,115,116,32,114,101,115,112,111,110,115,101,68,97,116,97,32,61,32,110,101,119,32,103,108,111,98,97,108,46,82,101,115,112,111,110,115,101,40,114,101,115,112,41,59,10,32,32,32,32,32,32,32,32,114,101,115,111,108,118,101,40,114,101,115,112,111,110,115,101,68,97,116,97,41,59,10,32,32,32,32,32,32,125,32,101,108,115,101,32,123,10,32,32,32,32,32,32,32,32,114,101,106,101,99,116,40,114,101,115,112,41,59,10,32,32,32,32,32,32,125,10,32,32,32,32,125,41,46,99,97,116,99,104,40,101,32,61,62,32,123,10,32,32,32,32,32,32,114,101,106,101,99,116,40,101,41,59,10,32,32,32,32,125,41,59,10,32,32,125,41,59,10,125,59,125,41,59,0 };  // NOLINT
  const uint8_t k_Storage[] = { 40,102,117,110,99,116,105,111,110,40,101,120,112,111,114,116,115,44,32,114,101,113,117,105,114,101,44,32,105,110,116,101,114,110,97,108,66,105,110,100,105,110,103,41,32,123,99,111,110,115,116,32,99,111,110,118,101,114,116,69,114,114,111,114,32,61,32,101,114,114,111,114,32,61,62,32,123,10,32,32,105,102,32,40,33,101,114,114,111,114,41,32,123,10,32,32,32,32,114,101,116,117,114,110,32,110,117,108,108,59,10,32,32,125,10,32,32,99,111,110,115,116,32,111,117,116,32,61,32,110,101,119,32,69,114,114,111,114,40,101,114,114,111,114,46,109,101,115,115,97,103,101,41,59,10,32,32,111,117,116,46,107,101,121,32,61,32,101,114,114,111,114,46,107,101,121,59,10,32,32,114,101,116,117,114,110,32,111,117,116,59,10,125,59,10,99,111,110,115,116,32,99,111,110,118,101,114,116,69,114,114,111,114,115,32,61,32,101,114,114,115,32,61,62,32,123,10,32,32,105,102,32,40,33,101,114,114,115,41,32,123,10,32,32,32,32,114,101,116,117,114,110,32,110,117,108,108,59,10,32,32,125,10,32,32,108,101,116,32,116,97,114,103,101,116,69,114,114,111,114,59,10,32,32,105,102,32,40,65,114,114,97,121,46,105,115,65,114,114,97,121,40,101,114,114,115,41,41,32,123,10,32,32,32,32,116,97,114,103,101,116,69,114,114,111,114,32,61,32,101,114,114,115,59,10,32,32,125,32,101,108,115,101,32,123,10,32,32,32,32,116,97,114,103,101,116,69,114,114,111,114,32,61,32,91,101,114,114,115,93,59,10,32,32,125,10,32,32,105,102,32,40,116,97,114,103,101,116,69,114,114,111,114,41,32,123,10,32,32,32,32,116,97,114,103,101,116,69,114,114,111,114,46,109,97,112,40,101,32,61,62,32,99,111,110,118,101,114,116,69,114,114,111,114,40,101,41,41,59,10,32,32,125,10,32,32,114,101,116,117,114,110,32,116,97,114,103,101,116,69,114,114,111,114,59,10,125,59,10,72,105,112,112,121,46,97,115,121,110,99,83,116,111,114,97,103,101,32,61,32,123,10,32,32,103,101,116,65,108,108,75,101,121,115,40,41,32,123,10,32,32,32,32,114,101,116,117,114,110,32,72,105,112,112,121,46,98,114,105,100,103,101,46,99,97,108,108,78,97,116,105,118,101,87,105,116,104,80,114,111,109,105,115,101,40,39,83,116,111,114,97,103,101,77,111,100,117,108,101,39,44,32,39,103,101,116,65,108,108,75,101,121,115,39,41,59,10,32,32,125,44,10,32,32,115,101,116,73,116,101,109,40,107,101,121,44,32,118,97,108,117,101,65,114,103,41,32,123,10,32,32,32,32,108,101,116,32,118,97,108,117,101,32,61,32,118,97,108,117,101,65,114,103,59,10,32,32,32,32,105,102,32,40,116,121,112,101,111,102,32,118,97,108,117,101,32,33,61,61,32,39,115,116,114,105,110,103,39,41,32,123,10,32,32,32,32,32,32,116,114,121,32,123,10,32,32,32,32,32,32,32,32,118,97,108,117,101,32,61,32,118,97,108,117,101,46,116,111,83,116,114,105,110,103,40,41,59,10,32,32,32,32,32,32,125,32,99,97,116,99,104,32,40,101,114,114,41,32,123,10,32,32,32,32,32,32,32,32,116,104,114,111,119,32,101,114,114,59,10,32,32,32,32,32,32,125,10,32,32,32,32,125,10,32,32,32,32,114,101,116,117,114,110,32,72,105,112,112,121,46,98,114,105,100,103,101,46,99,97,108,108,78,97,116,105,118,101,87,105,116,104,80,114,111,109,105,115,101,40,39,83,116,111,114,97,103,101,77,111,100,117,108,101,39,44,32,39,109,117,108,116,105,83,101,116,39,44,32,91,91,107,101,121,44,32,118,97,108,117,101,93,93,41,59,10,32,32,125,44,10,32,32,103,101,116,73,116,101,109,40,107,101,121,41,32,123,10,32,32,32,32,114,101,116,117,114,110,32,72,105,112,112,121,46,98,114,105,100,103,101,46,99,97,108,108,78,97,116,105,118,101,87,105,116,104,80,114,111,109,105,115,101,40,39,83,116,111,114,97,103,101,77,111,100,117,108,101,39,44,32,39,109,117,108,116,105,71,101,116,39,44,32,91,107,101,121,93,41,46,116,104,101,110,40,114,32,61,62,32,123,10,32,32,32,32,32,32,105,102,32,40,33,114,32,124,124,32,33,114,91,48,93,32,124,124,32,33,114,91,48,93,91,49,93,41,32,123,10,32,32,32,32,32,32,32,32,114,101,116,117,114,110,32,110,117,108,108,59,10,32,32,32,32,32,32,125,10,32,32,32,32,32,32,114,101,116,117,114,110,32,114,91,48,93,91,49,93,59,10,32,32,32,32,125,41,46,99,97,116,99,104,40,101,114,114,32,61,62,32,99,111,110,118,101,114,116,69,114,114,111,114,115,40,101,114,114,41,41,59,10,32,32,125,44,10,32,32,114,101,109,111,118,101,73,116,101,109,40,107,101,121,41,32,123,10,32,32,32,32,114,101,116,117,114,110,32,72,105,112,112,121,46,98,114,105,100,103,101,46,99,97,108,108,78,97,116,105,118,101,87,105,116,104,80,114,111,109,105,115,101,40,39,83,116,111,114,97,103,101,77,111,100,117,108,101,39,44,32,39,109,117,108,116,105,82,101,109,111,118,101,39,44,32,91,107,101,121,93,41,59,10,32,32,125,44,10,32,32,109,117,108,116,105,71,101,116,40,107,101,121,115,41,32,123,10,32,32,32,32,114,101,116,117,114,110,32,72,105,112,112,121,46,98,114,105,100,103,101,46,99,97,108,108,78,97,116,105,118,101,87,105,116,104,80,114,111,109,105,115,101,40,39,83,116,111,114,97,103,101,77,111,100,117,108,101,39,44,32,39,109,117,108,116,105,71,101,116,39,44,32,107,101,121,115,41,59,10,32,32,125,44,10,32,32,109,117,108,116,105,83,101,116,40,107,101,121,86,97,108,117,101,80,97,105,114,115,41,32,123,10,32,32,32,32,114,101,116,117,114,110,32,72,105,112,112,121,46,98,114,105,100,103,101,46,99,97,108,108,78,97,116,105,118,101,87,105,116,104,80,114,111,109,105,115,101,40,39,83,116,111,114,97,103,101,77,111,100,117,108,101,39,44,32,39,109,117,108,116,105,83,101,116,39,44,32,107,101,121,86,97,108,117,101,80,97,105,114,115,41,59,10,32,32,125,44,10,32,32,109,117,108,116,105,82,101,109,111,118,101,40,107,101,121,115,41,32,123,10,32,32,32,32,114,101,116,117,114,110,32,72,105,112,112,121,46,98,114,105,100,103,101,46,99,97,108,108,78,97,116,105,118,101,87,105,116,104,80,114,111,109,105,115,101,40,39,83,116,111,114,97,103,101,77,111,100,117,108,101,39,44,32,39,109,117,108,116,105,82,101,109,111,118,101,39,44,32,107,101,121,115,41,59,10,32,32,125,10,125,59,125,41,59,0 };  // NOLINT
  const uint8_t k_Dimensions[] = { 40,102,117,110,99,116,105,111,110,40,101,120,112,111,114,116,115,44,32,114,101,113,117,105,114,101,44,32,105,110,116,101,114,110,97,108,66,105,110,100,105,110,103,41,32,123,102,117,110,99,116,105,111,110,32,116,114,97,110,115,102,101,114,84,111,85,110,105,102,105,101,100,68,105,109,101,110,115,105,111,110,115,40,110,97,116,105,118,101,68,105,109,101,110,115,105,111,110,115,41,32,123,10,32,32,108,101,116,32,110,97,116,105,118,101,87,105,110,100,111,119,59,10,32,32,108,101,116,32,110,97,116,105,118,101,83,99,114,101,101,110,59,10,32,32,105,102,32,40,103,108,111,98,97,108,46,95,95,72,73,80,80,89,78,65,84,73,86,69,71,76,79,66,65,76,95,95,46,79,83,32,61,61,61,32,39,105,111,115,39,41,32,123,10,32,32,32,32,40,123,10,32,32,32,32,32,32,119,105,110,100,111,119,58,32,110,97,116,105,118,101,87,105,110,100,111,119,44,10,32,32,32,32,32,32,115,99,114,101,101,110,58,32,110,97,116,105,118,101,83,99,114,101,101,110,10,32,32,32,32,125,32,61,32,110,97,116,105,118,101,68,105,109,101,110,115,105,111,110,115,41,59,10,32,32,125,32,101,108,115,101,32,123,10,32,32,32,32,40,123,10,32,32,32,32,32,32,119,105,110,100,111,119,80,104,121,115,105,99,97,108,80,105,120,101,108,115,58,32,110,97,116,105,118,101,87,105,110,100,111,119,44,10,32,32,32,32,32,32,115,99,114,101,101,110,80,104,121,115,105,99,97,108,80,105,120,101,108,115,58,32,110,97,116,105,118,101,83,99,114,101,101,110,10,32,32,32,32,125,32,61,32,110,97,116,105,118,101,68,105,109,101,110,115,105,111,110,115,41,59,10,32,32,125,10,32,32,114,101,116,117,114,110,32,123,10,32,32,32,32,110,97,116,105,118,101,87,105,110,100,111,119,44,10,32,32,32,32,110,97,116,105,118,101,83,99,114,101,101,110,10,32,32,125,59,10,125,10,102,117,110,99,116,105,111,110,32,103,101,116,80,114,111,99,101,115,115,101,100,68,105,109,101,110,115,105,111,110,115,40,110,97,116,105,118,101,68,105,109,101,110,115,105,111,110,115,41,32,123,10,32,32,108,101,116,32,119,105,110,100,111,119,32,61,32,123,125,59,10,32,32,108,101,116,32,115,99,114,101,101,110,32,61,32,123,125,59,10,32,32,99,111,110,115,116,32,123,10,32,32,32,32,110,97,116,105,118,101,87,105,110,100,111,119,44,10,32,32,32,32,110,97,116,105,118,101,83,99,114,101,101,110,10,32,32,125,32,61,32,116,114,97,110,115,102,101,114,84,111,85,110,105,102,105,101,100,68,105,109,101,110,115,105,111,110,115,40,110,97,116,105,118,101,68,105,109,101,110,115,105,111,110,115,41,59,10,32,32,105,102,32,40,110,97,116,105,118,101,87,105,110,100,111,119,41,32,123,10,32,32,32,32,103,108,111,98,97,108,46,95,95,72,73,80,80,89,78,65,84,73,86,69,71,76,79,66,65,76,95,95,46,79,83,32,61,61,61,32,39,105,111,115,39,32,63,32,119,105,110,100,111,119,32,61,32,110,97,116,105,118,101,87,105,110,100,111,119,32,58,32,119,105,110,100,111,119,32,61,32,123,10,32,32,32,32,32,32,119,105,100,116,104,58,32,110,97,116,105,118,101,87,105,110,100,111,119,46,119,105,100,116,104,44,10,32,32,32,32,32,32,104,101,105,103,104,116,58,32,110,97,116,105,118,101,87,105,110,100,111,119,46,104,101,105,103,104,116,44,10,32,32,32,32,32,32,115,99,97,108,101,58,32,110,97,116,105,118,101,87,105,110,100,111,119,46,115,99,97,108,101,44,10,32,32,32,32,32,32,102,111,110,116,83,99,97,108,101,58,32,110,97,116,105,118,101,87,105,110,100,111,119,46,102,111,110,116,83,99,97,108,101,44,10,32,32,32,32,32,32,115,116,97,116,117,115,66,97,114,72,101,105,103,104,116,58,32,110,97,116,105,118,101,87,105,110,100,111,119,46,115,116,97,116,117,115,66,97,114,72,101,105,103,104,116,44,10,32,32,32,32,32,32,110,97,118,105,103,97,116,111,114,66,97,114,72,101,105,103,104,116,58,32,110,97,116,105,118,101,87,105,110,100,111,119,46,110,97,118,105,103,97,116,105,111,110,66,97,114,72,101,105,103,104,116,10,32,32,32,32,125,59,10,32,32,125,10,32,32,105,102,32,40,110,97,116,105,118,101,83,99,114,101,101,110,41,32,123,10,32,32,32,32,103,108,111,98,97,108,46,95,95,72,73,80,80,89,78,65,84,73,86,69,71,76,79,66,65,76,95,95,46,79,83,32,61,61,61,32,39,105,111,115,39,32,63,32,115,99,114,101,101,110,32,61,32,110,97,116,105,118,101,83,99,114,101,101,110,32,58,32,115,99,114,101,101,110,32,61,32,123,10,32,32,32,32,32,32,119,105,100,116,104,58,32,110,97,116,105,118,101,83,99,114,101,101,110,46,119,105,100,116,104,44,10,32,32,32,32,32,32,104,101,105,103,104,116,58,32,110,97,116,105,118,101,83,99,114,101,101,110,46,104,101,105,103,104,116,44,10,32,32,32,32,32,32,115,99,97,108,101,58,32,110,97,116,105,118,101,83,99,114,101,101,110,46,115,99,97,108,101,44,10,32,32,32,32,32,32,102,111,110,116,83,99,97,108,101,58,32,110,97,116,105,118,101,83,99,114,101,101,110,46,102,111,110,116,83,99,97,108,101,44,10,32,32,32,32,32,32,115,116,97,116,117,115,66,97,114,72,101,105,103,104,116,58,32,110,97,116,105,118,101,83,99,114,101,101,110,46,115,116,97,116,117,115,66,97,114,72,101,105,103,104,116,44,10,32,32,32,32,32,32,110,97,118,105,103,97,116,111,114,66,97,114,72,101,105,103,104,116,58,32,110,97,116,105,118,101,83,99,114,101,101,110,46,110,97,118,105,103,97,116,105,111,110,66,97,114,72,101,105,103,104,116,10,32,32,32,32,125,59,10,32,32,125,10,32,32,114,101,116,117,114,110,32,123,10,32,32,32,32,119,105,110,100,111,119,44,10,32,32,32,32,115,99,114,101,101,110,10,32,32,125,59,10,125,10,99,111,110,115,116,32,68,105,109,101,110,115,105,111,110,115,32,61,32,123,10,32,32,103,101,116,40,107,101,121,41,32,123,10,32,32,32,32,99,111,110,115,116,32,100,101,118,105,99,101,32,61,32,72,105,112,112,121,46,100,101,118,105,99,101,32,124,124,32,123,125,59,10,32,32,32,32,114,101,116,117,114,110,32,100,101,118,105,99,101,91,107,101,121,93,59,10,32,32,125,44,10,32,32,115,101,116,40,110,97,116,105,118,101,68,105,109,101,110,115,105,111,110,115,41,32,123,10,32,32,32,32,105,102,32,40,33,110,97,116,105,118,101,68,105,109,101,110,115,105,111,110,115,41,32,123,10,32,32,32,32,32,32,114,101,116,117,114,110,59,10,32,32,32,32,125,10,32,32,32,32,99,111,110,115,116,32,123,10,32,32,32,32,32,32,119,105,110,100,111,119,44,10,32,32,32,32,32,32,115,99,114,101,101,110,10,32,32,32,32,125,32,61,32,103,101,116,80,114,111,99,101,115,115,101,100,68,105,109,101,110,115,105,111,110,115,40,110,97,116,105,118,101,68,105,109,101,110,115,105,111,110,115,41,59,10,32,32,32,32,72,105,112,112,121,46,100,101,118,105,99,101,46,119,105,110,100,111,119,32,61,32,119,105,110,100,111,119,59,10,32,32,32,32,72,105,112,112,121,46,100,101,118,105,99,101,46,115,99,114,101,101,110,32,61,32,115,99,114,101,101,110,59,10,32,32,32,32,72,105,112,112,121,46,100,101,118,105,99,101,46,112,105,120,101,108,82,97,116,105,111,32,61,32,72,105,112,112,121,46,100,101,118,105,99,101,46,119,105,110,100,111,119,46,115,99,97,108,101,59,10,32,32,125,44,10,32,32,105,110,105,116,40,41,32,123,10,32,32,32,32,116,104,105,115,46,115,101,116,40,95,95,72,73,80,80,89,78,65,84,73,86,69,71,76,79,66,65,76,95,95,46,68,105,109,101,110,115,105,111,110,115,41,59,10,32,32,125,10,125,59,10,68,105,109,101,110,115,105,111,110,115,46,105,110,105,116,40,41,59,10,95,95,71,76,79,66,65,76,95,95,46,106,115,77,111,100,117,108,101,76,105,115,116,32,61,32,123,10,32,32,68,105,109,101,110,115,105,111,110,115,10,125,59,125,41,59,0 };  // NOLINT
  const uint8_t k_UtilsModule[] = { 40,102,117,110,99,116,105,111,110,40,101,120,112,111,114,116,115,44,32,114,101,113,117,105,114,101,44,32,105,110,116,101,114,110,97,108,66,105,110,100,105,110,103,41,32,123,105,102,32,40,72,105,112,112,121,46,100,101,118,105,99,101,46,112,108,97,116,102,111,114,109,46,79,83,32,61,61,61,32,39,97,110,100,114,111,105,100,39,41,32,123,10,32,32,72,105,112,112,121,46,100,101,118,105,99,101,46,118,105,98,114,97,116,101,32,61,32,40,112,97,116,116,101,114,110,44,32,114,101,112,101,97,116,41,32,61,62,32,123,10,32,32,32,32,108,101,116,32,95,112,97,116,116,101,114,110,32,61,32,112,97,116,116,101,114,110,59,10,32,32,32,32,108,101,116,32,95,114,101,112,101,97,116,32,61,32,114,101,112,101,97,116,59,10,32,32,32,32,105,102,32,40,116,121,112,101,111,102,32,112,97,116,116,101,114,110,32,61,61,61,32,39,110,117,109,98,101,114,39,41,32,123,10,32,32,32,32,32,32,95,112,97,116,116,101,114,110,32,61,32,91,48,44,32,112,97,116,116,101,114,110,93,59,10,32,32,32,32,125,10,32,32,32,32,105,102,32,40,114,101,112,101,97,116,32,61,61,61,32,117,110,100,101,102,105,110,101,100,41,32,123,10,32,32,32,32,32,32,95,114,101,112,101,97,116,32,61,32,45,49,59,10,32,32,32,32,125,10,32,32,32,32,72,105,112,112,121,46,98,114,105,100,103,101,46,99,97,108,108,78,97,116,105,118,101,87,105,116,104,67,97,108,108,98,97,99,107,73,100,40,39,85,116,105,108,115,77,111,100,117,108,101,39,44,32,39,118,105,98,114,97,116,101,39,44,32,116,114,117,101,44,32,95,112,97,116,116,101,114,110,44,32,95,114,101,112,101,97,116,41,59,10,32,32,125,59,10,32,32,72,105,112,112,121,46,100,101,118,105,99,101,46,99,97,110,99,101,108,86,105,98,114,97,116,101,32,61,32,40,41,32,61,62,32,123,10,32,32,32,32,72,105,112,112,121,46,98,114,105,100,103,101,46,99,97,108,108,78,97,116,105,118,101,87,105,116,104,67,97,108,108,98,97,99,107,73,100,40,39,85,116,105,108,115,77,111,100,117,108,101,39,44,32,39,99,97,110,99,101,108,39,44,32,116,114,117,101,41,59,10,32,32,125,59,10,125,32,101,108,115,101,32,105,102,32,40,72,105,112,112,121,46,100,101,118,105,99,101,46,112,108,97,116,102,111,114,109,46,79,83,32,61,61,61,32,39,105,111,115,39,41,32,123,10,32,32,72,105,112,112,121,46,100,101,118,105,99,101,46,118,105,98,114,97,116,101,32,61,32,40,41,32,61,62,32,123,125,59,10,32,32,72,105,112,112,121,46,100,101,118,105,99,101,46,99,97,110,99,101,108,86,105,98,114,97,116,101,32,61,32,40,41,32,61,62,32,123,125,59,10,125,125,41,59,0 };  // NOLINT
  const uint8_t k_global[] = { 40,102,117,110,99,116,105,111,110,40,101,120,112,111,114,116,115,44,32,114,101,113,117,105,114,101,44,32,105,110,116,101,114,110,97,108,66,105,110,100,105,110,103,41,32,123,95,95,71,76,79,66,65,76,95,95,46,97,112,112,82,101,103,105,115,116,101,114,32,61,32,123,125,59,10,95,95,71,76,79,66,65,76,95,95,46,109,111,100,117,108,101,67,97,108,108,73,100,32,61,32,48,59,10,95,95,71,76,79,66,65,76,95,95,46,109,111,100,117,108,101,67,97,108,108,76,105,115,116,32,61,32,123,125,59,10,95,95,71,76,79,66,65,76,95,95,46,99,97,110,82,101,113,117,101,115,116,65,110,105,109,97,116,105,111,110,70,114,97,109,101,32,61,32,116,114,117,101,59,10,95,95,71,76,79,66,65,76,95,95,46,114,101,113,117,101,115,116,65,110,105,109,97,116,105,111,110,70,114,97,109,101,73,100,32,61,32,48,59,10,95,95,71,76,79,66,65,76,95,95,46,114,101,113,117,101,115,116,65,110,105,109,97,116,105,111,110,70,114,97,109,101,81,117,101,117,101,32,61,32,123,125,59,125,41,59,0 };  // NOLINT
  const uint8_t k_native2js[] = { 40,102,117,110,99,116,105,111,110,40,101,120,112,111,114,116,115,44,32,114,101,113,117,105,114,101,44,32,105,110,116,101,114,110,97,108,66,105,110,100,105,110,103,41,32,123,103,108,111,98,97,108,46,104,105,112,112,121,66,114,105,100,103,101,32,61,32,40,95,97,99,116,105,111,110,44,32,95,99,97,108,108,79,98,106,41,32,61,62,32,123,10,32,32,108,101,116,32,114,101,115,112,32,61,32,39,115,117,99,99,101,115,115,39,59,10,32,32,108,101,116,32,97,99,116,105,111,110,32,61,32,95,97,99,116,105,111,110,59,10,32,32,108,101,116,32,99,97,108,108,79,98,106,32,61,32,95,99,97,108,108,79,98,106,59,10,32,32,105,102,32,40,97,99,116,105,111,110,32,61,61,61,32,39,112,97,117,115,101,73,110,115,116,97,110,99,101,39,41,32,123,10,32,32,32,32,97,99,116,105,111,110,32,61,32,39,99,97,108,108,74,115,77,111,100,117,108,101,39,59,10,32,32,32,32,99,97,108,108,79,98,106,32,61,32,123,10,32,32,32,32,32,32,109,101,116,104,111,100,78,97,109,101,58,32,39,114,101,99,101,105,118,101,78,97,116,105,118,101,69,118,101,110,116,39,44,10,32,32,32,32,32,32,109,111,100,117,108,101,78,97,109,101,58,32,39,69,118,101,110,116,68,105,115,112,97,116,99,104,101,114,39,44,10,32,32,32,32,32,32,112,97,114,97,109,115,58,32,91,39,64,104,105,112,112,121,58,112,97,117,115,101,73,110,115,116,97,110,99,101,39,44,32,110,117,108,108,93,10,32,32,32,32,125,59,10,32,32,125,10,32,32,105,102,32,40,97,99,116,105,111,110,32,61,61,61,32,39,114,101,115,117,109,101,73,110,115,116,97,110,99,101,39,41,32,123,10,32,32,32,32,97,99,116,105,111,110,32,61,32,39,99,97,108,108,74,115,77,111,100,117,108,101,39,59,10,32,32,32,32,99,97,108,108,79,98,106,32,61,32,123,10,32,32,32,32,32,32,109,101,116,104,111,100,78,97,109,101,58,32,39,114,101,99,101,105,118,101,78,97,116,105,118,101,69,118,101,110,116,39,44,10,32,32,32,32,32,32,109,111,100,117,108,101,78,97,109,101,58,32,39,69,118,101,110,116,68,105,115,112,97,116,99,104,101,114,39,44,10,32,32,32,32,32,32,112,97,114,97,109,115,58,32,91,39,64,104,105,112,112,121,58,114,101,115,117,109,101,73,110,115,116,97,110,99,101,39,44,32,110,117,108,108,93,10,32,32,32,32,125,59,10,32,32,125,10,32,32,115,119,105,116,99,104,32,40,97,99,116,105,111,110,41,32,123,10,32,32,32,32,99,97,115,101,32,39,99,97,108,108,66,97,99,107,39,58,10,32,32,32,32,32,32,123,10,32,32,32,32,32,32,32,32,105,102,32,40,99,97,108,108,79,98,106,46,109,111,100,117,108,101,78,97,109,101,32,61,61,61,32,39,65,110,105,109,97,116,105,111,110,70,114,97,109,101,77,111,100,117,108,101,39,32,38,38,32,99,97,108,108,79,98,106,46,109,111,100,117,108,101,70,117,110,99,32,61,61,61,32,39,114,101,113,117,101,115,116,65,110,105,109,97,116,105,111,110,70,114,97,109,101,39,41,32,123,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,99,97,108,108,79,98,106,46,114,101,115,117,108,116,32,33,61,61,32,48,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,115,112,32,61,32,39,110,97,116,105,118,101,50,106,115,32,101,114,114,111,114,58,32,110,97,116,105,118,101,32,102,97,105,108,101,100,32,116,111,32,99,97,108,108,32,65,110,105,109,97,116,105,111,110,70,114,97,109,101,77,111,100,117,108,101,32,114,101,113,117,101,115,116,65,110,105,109,97,116,105,111,110,70,114,97,109,101,40,41,39,59,10,32,32,32,32,32,32,32,32,32,32,32,32,98,114,101,97,107,59,10,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,32,32,95,95,71,76,79,66,65,76,95,95,46,99,97,110,82,101,113,117,101,115,116,65,110,105,109,97,116,105,111,110,70,114,97,109,101,32,61,32,116,114,117,101,59,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,95,95,71,76,79,66,65,76,95,95,46,114,101,113,117,101,115,116,65,110,105,109,97,116,105,111,110,70,114,97,109,101,81,117,101,117,101,91,99,97,108,108,79,98,106,46,102,114,97,109,101,73,100,93,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,95,95,71,76,79,66,65,76,95,95,46,114,101,113,117,101,115,116,65,110,105,109,97,116,105,111,110,70,114,97,109,101,81,117,101,117,101,91,99,97,108,108,79,98,106,46,102,114,97,109,101,73,100,93,46,102,111,114,69,97,99,104,40,99,98,32,61,62,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,105,102,32,40,116,121,112,101,111,102,32,99,98,32,61,61,61,32,39,102,117,110,99,116,105,111,110,39,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,99,98,40,99,97,108,108,79,98,106,46,112,97,114,97,109,115,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,32,32,32,32,125,41,59,10,32,32,32,32,32,32,32,32,32,32,32,32,100,101,108,101,116,101,32,95,95,71,76,79,66,65,76,95,95,46,114,101,113,117,101,115,116,65,110,105,109,97,116,105,111,110,70,114,97,109,101,81,117,101,117,101,91,99,97,108,108,79,98,106,46,102,114,97,109,101,73,100,93,59,10,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,125,32,101,108,115,101,32,105,102,32,40,95,95,71,76,79,66,65,76,95,95,46,109,111,100,117,108,101,67,97,108,108,76,105,115,116,91,99,97,108,108,79,98,106,46,99,97,108,108,73,100,93,41,32,123,10,32,32,32,32,32,32,32,32,32,32,99,111,110,115,116,32,99,97,108,108,98,97,99,107,79,98,106,32,61,32,95,95,71,76,79,66,65,76,95,95,46,109,111,100,117,108,101,67,97,108,108,76,105,115,116,91,99,97,108,108,79,98,106,46,99,97,108,108,73,100,93,59,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,99,97,108,108,79,98,106,46,114,101,115,117,108,116,32,33,61,61,32,48,32,38,38,32,116,121,112,101,111,102,32,99,97,108,108,98,97,99,107,79,98,106,46,114,101,106,101,99,116,32,61,61,61,32,39,102,117,110,99,116,105,111,110,39,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,99,97,108,108,98,97,99,107,79,98,106,46,114,101,106,101,99,116,40,99,97,108,108,79,98,106,46,112,97,114,97,109,115,41,59,10,32,32,32,32,32,32,32,32,32,32,125,32,101,108,115,101,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,116,121,112,101,111,102,32,99,97,108,108,98,97,99,107,79,98,106,46,99,98,32,61,61,61,32,39,102,117,110,99,116,105,111,110,39,32,38,38,32,99,97,108,108,98,97,99,107,79,98,106,46,99,98,40,99,97,108,108,79,98,106,46,112,97,114,97,109,115,41,59,10,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,99,97,108,108,98,97,99,107,79,98,106,46,116,121,112,101,32,61,61,61,32,48,32,124,124,32,99,97,108,108,98,97,99,107,79,98,106,46,116,121,112,101,32,61,61,61,32,49,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,100,101,108,101,116,101,32,95,95,71,76,79,66,65,76,95,95,46,109,111,100,117,108,101,67,97,108,108,76,105,115,116,91,99,97,108,108,79,98,106,46,99,97,108,108,73,100,93,59,10,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,125,32,101,108,115,101,32,123,10,32,32,32,32,32,32,32,32,32,32,114,101,115,112,32,61,32,39,110,97,116,105,118,101,50,106,115,32,101,114,114,111,114,58,32,110,97,116,105,118,101,32,99,97,108,108,98,97,99,107,32,105,100,32,105,115,32,110,111,116,32,114,101,103,105,115,116,101,114,101,100,32,105,110,32,106,115,39,59,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,98,114,101,97,107,59,10,32,32,32,32,32,32,125,10,32,32,32,32,99,97,115,101,32,39,99,97,108,108,74,115,77,111,100,117,108,101,39,58,10,32,32,32,32,32,32,123,10,32,32,32,32,32,32,32,32,105,102,32,40,33,99,97,108,108,79,98,106,32,124,124,32,33,99,97,108,108,79,98,106,46,109,111,100,117,108,101,78,97,109,101,32,124,124,32,33,99,97,108,108,79,98,106,46,109,101,116,104,111,100,78,97,109,101,41,32,123,10,32,32,32,32,32,32,32,32,32,32,114,101,115,112,32,61,32,39,110,97,116,105,118,101,50,106,115,32,101,114,114,111,114,58,32,99,97,108,108,74,115,77,111,100,117,108,101,32,112,97,114,97,109,32,105,115,32,105,110,118,97,108,105,100,39,59,10,32,32,32,32,32,32,32,32,125,32,101,108,115,101,32,123,10,32,32,32,32,32,32,32,32,32,32,99,111,110,115,116,32,116,97,114,103,101,116,77,111,100,117,108,101,32,61,32,95,95,71,76,79,66,65,76,95,95,46,106,115,77,111,100,117,108,101,76,105,115,116,91,99,97,108,108,79,98,106,46,109,111,100,117,108,101,78,97,109,101,93,59,10,32,32,32,32,32,32,32,32,32,32,105,102,32,40,33,116,97,114,103,101,116,77,111,100,117,108,101,32,124,124,32,116,121,112,101,111,102,32,116,97,114,103,101,116,77,111,100,117,108,101,91,99,97,108,108,79,98,106,46,109,101,116,104,111,100,78,97,109,101,93,32,33,61,61,32,39,102,117,110,99,116,105,111,110,39,41,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,114,101,115,112,32,61,32,39,110,97,116,105,118,101,50,106,115,32,101,114,114,111,114,58,32,99,97,108,108,74,115,77,111,100,117,108,101,32,105,115,32,116,97,114,103,101,116,105,110,103,32,97,110,32,117,110,100,101,102,105,110,101,100,32,109,111,100,117,108,101,32,111,114,32,109,101,116,104,111,100,39,59,10,32,32,32,32,32,32,32,32,32,32,125,32,101,108,115,101,32,123,10,32,32,32,32,32,32,32,32,32,32,32,32,116,97,114,103,101,116,77,111,100,117,108,101,91,99,97,108,108,79,98,106,46,109,101,116,104,111,100,78,97,109,101,93,40,99,97,108,108,79,98,106,46,112,97,114,97,109,115,41,59,10,32,32,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,125,10,32,32,32,32,32,32,32,32,98,114,101,97,107,59,10,32,32,32,32,32,32,125,10,32,32,32,32,100,101,102,97,117,108,116,58,10,32,32,32,32,32,32,123,10,32,32,32,32,32,32,32,32,114,101,115,112,32,61,32,39,110,97,116,105,118,101,50,106,115,32,101,114,114,111,114,58,32,110,97,116,105,118,101,50,106,115,32,97,99,116,105,111,110,32,105,115,32,110,111,116,32,100,101,102,105,110,101,100,39,59,10,32,32,32,32,32,32,32,32,98,114,101,97,107,59,10,32,32,32,32,32,32,125,10,32,32,125,10,32,32,114,101,116,117,114,110,32,114,101,115,112,59,10,125,59,125,41,59,0 };  // NOLINT
  const uint8_t k_Event[] = { 40,102,117,110,99,116,105,111,110,40,101,120,112,111,114,116,115,44,32,114,101,113,117,105,114,101,44,32,105,110,116,101,114,110,97,108,66,105,110,100,105,110,103,41,32,123,103,108,111,98,97,108,46,72,105,112,112,121,68,101,97,108,108,111,99,32,61,32,40,41,32,61,62,32,123,10,32,32,105,102,32,40,103,108,111,98,97,108,46,72,105,112,112,121,41,32,123,10,32,32,32,32,103,108,111,98,97,108,46,72,105,112,112,121,46,101,109,105,116,40,39,100,101,97,108,108,111,99,39,41,59,10,32,32,125,10,125,59,10,103,108,111,98,97,108,46,95,95,108,111,97,100,73,110,115,116,97,110,99,101,95,95,32,61,32,111,98,106,32,61,62,32,123,10,32,32,99,111,110,115,116,32,123,10,32,32,32,32,110,97,109,101,44,10,32,32,32,32,105,100,44,10,32,32,32,32,112,97,114,97,109,115,32,61,32,123,125,10,32,32,125,32,61,32,111,98,106,32,124,124,32,123,125,59,10,32,32,105,102,32,40,95,95,71,76,79,66,65,76,95,95,46,97,112,112,82,101,103,105,115,116,101,114,91,110,97,109,101,93,41,32,123,10,32,32,32,32,79,98,106,101,99,116,46,97,115,115,105,103,110,40,112,97,114,97,109,115,44,32,123,10,32,32,32,32,32,32,95,95,105,110,115,116,97,110,99,101,78,97,109,101,95,95,58,32,110,97,109,101,44,10,32,32,32,32,32,32,95,95,105,110,115,116,97,110,99,101,73,100,95,95,58,32,105,100,10,32,32,32,32,125,41,59,10,32,32,32,32,79,98,106,101,99,116,46,97,115,115,105,103,110,40,95,95,71,76,79,66,65,76,95,95,46,97,112,112,82,101,103,105,115,116,101,114,91,110,97,109,101,93,44,32,123,10,32,32,32,32,32,32,105,100,44,10,32,32,32,32,32,32,115,117,112,101,114,80,114,111,112,115,58,32,112,97,114,97,109,115,10,32,32,32,32,125,41,59,10,32,32,32,32,99,111,110,115,116,32,69,118,101,110,116,77,111,100,117,108,101,32,61,32,95,95,71,76,79,66,65,76,95,95,46,106,115,77,111,100,117,108,101,76,105,115,116,46,69,118,101,110,116,68,105,115,112,97,116,99,104,101,114,59,10,32,32,32,32,105,102,32,40,69,118,101,110,116,77,111,100,117,108,101,32,38,38,32,116,121,112,101,111,102,32,69,118,101,110,116,77,111,100,117,108,101,46,114,101,99,101,105,118,101,78,97,116,105,118,101,69,118,101,110,116,32,61,61,61,32,39,102,117,110,99,116,105,111,110,39,41,32,123,10,32,32,32,32,32,32,69,118,101,110,116,77,111,100,117,108,101,46,114,101,99,101,105,118,101,78,97,116,105,118,101,69,118,101,110,116,40,91,39,64,104,112,58,108,111,97,100,73,110,115,116,97,110,99,101,39,44,32,112,97,114,97,109,115,93,41,59,10,32,32,32,32,125,10,32,32,32,32,95,95,71,76,79,66,65,76,95,95,46,97,112,112,82,101,103,105,115,116,101,114,91,110,97,109,101,93,46,114,117,110,40,112,97,114,97,109,115,41,59,10,32,32,125,32,101,108,115,101,32,123,10,32,32,32,32,116,104,114,111,119,32,110,101,119,32,69,114,114,111,114,40,96,108,111,97,100,32,105,110,115,116,97,110,99,101,32,101,114,114,111,114,58,32,91,36,123,110,97,109,101,125,93,32,105,115,32,110,111,116,32,114,101,103,105,115,116,101,114,101,100,32,105,110,32,106,115,96,41,59,10,32,32,125,10,125,59,10,103,108,111,98,97,108,46,95,95,117,110,108,111,97,100,73,110,115,116,97,110,99,101,95,95,32,61,32,111,98,106,32,61,62,32,123,10,32,32,99,111,110,115,116,32,123,10,32,32,32,32,105,100,10,32,32,125,32,61,32,111,98,106,32,124,124,32,123,125,59,10,32,32,103,108,111,98,97,108,46,72,105,112,112,121,46,101,109,105,116,40,39,100,101,115,116,114,111,121,73,110,115,116,97,110,99,101,39,44,32,105,100,41,59,10,32,32,72,105,112,112,121,46,98,114,105,100,103,101,46,99,97,108,108,78,97,116,105,118,101,40,39,82,111,111,116,86,105,101,119,77,97,110,97,103,101,114,39,44,32,39,114,101,109,111,118,101,82,111,111,116,86,105,101,119,39,44,32,105,100,41,59,10,125,59,125,41,59,0 };  // NOLINT
  const uint8_t k_AnimationFrameModule[] = { 40,102,117,110,99,116,105,111,110,40,101,120,112,111,114,116,115,44,32,114,101,113,117,105,114,101,44,32,105,110,116,101,114,110,97,108,66,105,110,100,105,110,103,41,32,123,99,111,110,115,116,32,65,110,105,109,97,116,105,111,110,70,114,97,109,101,77,111,100,117,108,101,32,61,32,105,110,116,101,114,110,97,108,66,105,110,100,105,110,103,40,39,65,110,105,109,97,116,105,111,110,70,114,97,109,101,77,111,100,117,108,101,39,41,59,10,103,108,111,98,97,108,46,114,101,113,117,101,115,116,65,110,105,109,97,116,105,111,110,70,114,97,109,101,32,61,32,99,98,32,61,62,32,123,10,32,32,105,102,32,40,99,98,41,32,123,10,32,32,32,32,105,102,32,40,95,95,71,76,79,66,65,76,95,95,46,99,97,110,82,101,113,117,101,115,116,65,110,105,109,97,116,105,111,110,70,114,97,109,101,41,32,123,10,32,32,32,32,32,32,95,95,71,76,79,66,65,76,95,95,46,99,97,110,82,101,113,117,101,115,116,65,110,105,109,97,116,105,111,110,70,114,97,109,101,32,61,32,102,97,108,115,101,59,10,32,32,32,32,32,32,95,95,71,76,79,66,65,76,95,95,46,114,101,113,117,101,115,116,65,110,105,109,97,116,105,111,110,70,114,97,109,101,73,100,32,43,61,32,49,59,10,32,32,32,32,32,32,95,95,71,76,79,66,65,76,95,95,46,114,101,113,117,101,115,116,65,110,105,109,97,116,105,111,110,70,114,97,109,101,81,117,101,117,101,91,95,95,71,76,79,66,65,76,95,95,46,114,101,113,117,101,115,116,65,110,105,109,97,116,105,111,110,70,114,97,109,101,73,100,93,32,61,32,91,93,59,10,32,32,32,32,32,32,95,95,71,76,79,66,65,76,95,95,46,114,101,113,117,101,115,116,65,110,105,109,97,116,105,111,110,70,114,97,109,101,81,117,101,117,101,91,95,95,71,76,79,66,65,76,95,95,46,114,101,113,117,101,115,116,65,110,105,109,97,116,105,111,110,70,114,97,109,101,73,100,93,46,112,117,115,104,40,99,98,41,59,10,32,32,32,32,32,32,65,110,105,109,97,116,105,111,110,70,114,97,109,101,77,111,100,117,108,101,46,82,101,113,117,101,115,116,65,110,105,109,97,116,105,111,110,70,114,97,109,101,40,95,95,71,76,79,66,65,76,95,95,46,114,101,113,117,101,115,116,65,110,105,109,97,116,105,111,110,70,114,97,109,101,73,100,41,59,10,32,32,32,32,125,32,101,108,115,101,32,105,102,32,40,95,95,71,76,79,66,65,76,95,95,46,114,101,113,117,101,115,116,65,110,105,109,97,116,105,111,110,70,114,97,109,101,81,117,101,117,101,91,95,95,71,76,79,66,65,76,95,95,46,114,101,113,117,101,115,116,65,110,105,109,97,116,105,111,110,70,114,97,109,101,73,100,93,41,32,123,10,32,32,32,32,32,32,95,95,71,76,79,66,65,76,95,95,46,114,101,113,117,101,115,116,65,110,105,109,97,116,105,111,110,70,114,97,109,101,81,117,101,117,101,91,95,95,71,76,79,66,65,76,95,95,46,114,101,113,117,101,115,116,65,110,105,109,97,116,105,111,110,70,114,97,109,101,73,100,93,46,112,117,115,104,40,99,98,41,59,10,32,32,32,32,125,10,32,32,32,32,114,101,116,117,114,110,32,39,39,59,10,32,32,125,10,32,32,116,104,114,111,119,32,110,101,119,32,84,121,112,101,69,114,114,111,114,40,39,73,110,118,97,108,105,100,32,97,114,103,117,109,101,110,116,115,39,41,59,10,125,59,10,103,108,111,98,97,108,46,99,97,110,99,101,108,65,110,105,109,97,116,105,111,110,70,114,97,109,101,32,61,32,40,41,32,61,62,32,123,10,32,32,95,95,71,76,79,66,65,76,95,95,46,99,97,110,82,101,113,117,101,115,116,65,110,105,109,97,116,105,111,110,70,114,97,109,101,32,61,32,116,114,117,101,59,10,32,32,65,110,105,109,97,116,105,111,110,70,114,97,109,101,77,111,100,117,108,101,46,67,97,110,99,101,108,65,110,105,109,97,116,105,111,110,70,114,97,109,101,40,41,59,10,125,59,125,41,59,0 };  // NOLINT
  const uint8_t k_Turbo[] = { 40,102,117,110,99,116,105,111,110,40,101,120,112,111,114,116,115,44,32,114,101,113,117,105,114,101,44,32,105,110,116,101,114,110,97,108,66,105,110,100,105,110,103,41,32,123,102,117,110,99,116,105,111,110,32,116,117,114,98,111,80,114,111,109,105,115,101,40,102,117,110,99,41,32,123,10,32,32,114,101,116,117,114,110,32,102,117,110,99,116,105,111,110,32,40,46,46,46,97,114,103,115,41,32,123,10,32,32,32,32,114,101,116,117,114,110,32,110,101,119,32,80,114,111,109,105,115,101,40,40,114,101,115,111,108,118,101,44,32,114,101,106,101,99,116,41,32,61,62,32,123,10,32,32,32,32,32,32,99,111,110,115,116,32,99,97,108,108,98,97,99,107,73,100,32,61,32,95,95,71,76,79,66,65,76,95,95,46,109,111,100,117,108,101,67,97,108,108,73,100,59,10,32,32,32,32,32,32,95,95,71,76,79,66,65,76,95,95,46,109,111,100,117,108,101,67,97,108,108,73,100,32,43,61,32,49,59,10,32,32,32,32,32,32,95,95,71,76,79,66,65,76,95,95,46,109,111,100,117,108,101,67,97,108,108,76,105,115,116,91,99,97,108,108,98,97,99,107,73,100,93,32,61,32,123,10,32,32,32,32,32,32,32,32,99,98,58,32,114,101,115,117,108,116,32,61,62,32,114,101,115,111,108,118,101,40,114,101,115,117,108,116,41,44,10,32,32,32,32,32,32,32,32,114,101,106,101,99,116,44,10,32,32,32,32,32,32,32,32,116,121,112,101,58,32,48,10,32,32,32,32,32,32,125,59,10,32,32,32,32,32,32,102,117,110,99,46,97,112,112,108,121,40,116,104,105,115,44,32,91,46,46,46,97,114,103,115,44,32,96,36,123,99,97,108,108,98,97,99,107,73,100,125,96,93,41,59,10,32,32,32,32,125,41,59,10,32,32,125,59,10,125,10,72,105,112,112,121,46,116,117,114,98,111,80,114,111,109,105,115,101,32,61,32,116,117,114,98,111,80,114,111,109,105,115,101,59,125,41,59,0 };  // NOLINT
}  // namespace

namespace hippy {
inline namespace driver {

static const std::unordered_map<std::string, NativeSourceCode> global_base_js_source_map{
  {"bootstrap.js", {k_bootstrap, ARRAY_SIZE(k_bootstrap) - 1}},  // NOLINT
  {"hippy.js", {k_hippy, ARRAY_SIZE(k_hippy) - 1}},  // NOLINT
  {"ExceptionHandle.js", {k_ExceptionHandle, ARRAY_SIZE(k_ExceptionHandle) - 1}},  // NOLINT
  {"Others.js", {k_Others, ARRAY_SIZE(k_Others) - 1}},  // NOLINT
  {"DynamicLoad.js", {k_DynamicLoad, ARRAY_SIZE(k_DynamicLoad) - 1}},  // NOLINT
  {"Platform.js", {k_Platform, ARRAY_SIZE(k_Platform) - 1}},  // NOLINT
  {"UIManagerModule.js", {k_UIManagerModule, ARRAY_SIZE(k_UIManagerModule) - 1}},  // NOLINT
  {"js2native.js", {k_js2native, ARRAY_SIZE(k_js2native) - 1}},  // NOLINT
  {"TimerModule.js", {k_TimerModule, ARRAY_SIZE(k_TimerModule) - 1}},  // NOLINT
  {"ConsoleModule.js", {k_ConsoleModule, ARRAY_SIZE(k_ConsoleModule) - 1}},  // NOLINT
  {"Network.js", {k_Network, ARRAY_SIZE(k_Network) - 1}},  // NOLINT
  {"Storage.js", {k_Storage, ARRAY_SIZE(k_Storage) - 1}},  // NOLINT
  {"Dimensions.js", {k_Dimensions, ARRAY_SIZE(k_Dimensions) - 1}},  // NOLINT
  {"UtilsModule.js", {k_UtilsModule, ARRAY_SIZE(k_UtilsModule) - 1}},  // NOLINT
  {"global.js", {k_global, ARRAY_SIZE(k_global) - 1}},  // NOLINT
  {"native2js.js", {k_native2js, ARRAY_SIZE(k_native2js) - 1}},  // NOLINT
  {"Event.js", {k_Event, ARRAY_SIZE(k_Event) - 1}},  // NOLINT
  {"AnimationFrameModule.js", {k_AnimationFrameModule, ARRAY_SIZE(k_AnimationFrameModule) - 1}},  // NOLINT
  {"Turbo.js", {k_Turbo, ARRAY_SIZE(k_Turbo) - 1}},  // NOLINT
};

static NativeSourceCode GetNativeSourceCodeImp(const std::string& filename) {
  const auto it = global_base_js_source_map.find(filename);
  return it != global_base_js_source_map.cend() ? it->second : NativeSourceCode{};
}

NativeSourceCode NativeSourceCodeProviderV8::GetNativeSourceCode(const std::string &filename) const {
  return GetNativeSourceCodeImp(filename);
}

} // namespace driver
} // namespace hippy
